WikiGrenada ua829038_wg https://wikigrenada.com/wiki/Main_Page MediaWiki 1.42.3 first-letter Media Special Talk User User talk WikiGrenada WikiGrenada talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk Module Module talk Template:Div col end 10 26 43 2015-10-03T15:58:07Z en>NeilN 0 Changed protection level of Template:Div col end: per request at [[WP:RFPP]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite)) wikitext text/x-wiki <includeonly></div></includeonly><noinclude> {{Documentation|Template:Div col/doc}} </noinclude> 78088d41c21d779e3722f220fcc9773dfbbc1e4f Template:Section link 10 44 79 2017-01-17T01:29:39Z en>Primefac 0 done wikitext text/x-wiki {{#invoke:Section link|main}}<noinclude> {{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude> 8d047e5845f8a9b74a4655b5dd79ca7595a8f88b Template:Navbar 10 39 69 2017-04-22T18:49:17Z en>Plastikspork 0 Closed wikitext text/x-wiki <includeonly>{{#invoke:Navbar|navbar}}</includeonly><noinclude> {{documentation}} </noinclude> 868e3566b7e8a9a5a7f3dac75cac429c47de10d3 Template:Yesno-no 10 59 109 2018-02-13T20:27:17Z en>WOSlinker 0 separate pp-template not needed wikitext text/x-wiki {{safesubst:<noinclude />yesno|{{{1}}}|yes={{{yes|yes}}}|no={{{no|no}}}|blank={{{blank|no}}}|¬={{{¬|no}}}|def={{{def|no}}}}}<noinclude> {{Documentation|Template:Yesno/doc}} <!--Categories go in the doc page referenced above; interwikis go in Wikidata.--> </noinclude> 1ad7b7800da1b867ead8f6ff8cef76e6201b3b56 Template:Tag 10 48 87 2018-07-26T17:17:13Z en>SMcCandlish 0 These are called attributes; no one who does HTML calls them "parameters". wikitext text/x-wiki <code class="{{#ifeq:{{{wrap|}}}|yes|wrap|nowrap}}" style="{{#ifeq:{{{style|}}}|plain|border:none;background:transparent;|{{{style|}}}}}"><!-- Opening tag -->{{#switch:{{{2|pair}}} |c|close = |e|empty|s|single|v|void |o|open |p|pair = &lt;{{#if:{{{link|}}}|[[HTML element#{{{1|tag}}}|{{{1|tag}}}]]|{{{1|tag}}}}}{{#if:{{{params|{{{attribs|}}}}}}|&#32;{{{params|{{{attribs}}}}}}}} }}<!-- Content between tags -->{{#switch:{{{2|pair}}} |c|close = {{{content|}}} |e|empty|s|single|v|void = &#32;&#47;&gt; |o|open = &gt;{{{content|}}} |p|pair = {{#ifeq:{{{1|tag}}}|!--||&gt;}}{{{content|...}}} }}<!-- Closing tag -->{{#switch:{{{2|pair}}} |e|empty|s|single|v|void |o|open = |c|close |p|pair = {{#ifeq:{{{1|tag}}}|!--|--&gt;|&lt;&#47;{{{1|tag}}}&gt;}} }}<!-- --></code><noinclude> {{Documentation}} </noinclude> eae208bc1612c834de697fa3ee9b343966cf8602 Template:Template other 10 52 95 2018-12-16T22:06:25Z en>Amorymeltzer 0 Changed protection level for "[[Template:Template other]]": [[WP:High-risk templates|Highly visible template]]: Transclusion count has increased dramatically ([Edit=Require administrator access] (indefinite) [Move=Require administrator access] (indefinite)) wikitext text/x-wiki {{#switch: <!--If no or empty "demospace" parameter then detect namespace--> {{#if:{{{demospace|}}} | {{lc: {{{demospace}}} }} <!--Use lower case "demospace"--> | {{#ifeq:{{NAMESPACE}}|{{ns:Template}} | template | other }} }} | template = {{{1|}}} | other | #default = {{{2|}}} }}<!--End switch--><noinclude> {{documentation}} <!-- Add categories and interwikis to the /doc subpage, not here! --> </noinclude> 06fb13d264df967b5232141067eb7d2b67372d76 Template:Lua 10 36 63 2019-03-20T22:04:45Z en>RMCD bot 0 Removing notice of move discussion wikitext text/x-wiki <includeonly>{{#invoke:Lua banner|main}}</includeonly><noinclude> {{Lua|Module:Lua banner}} {{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude> dba3962144dacd289dbc34f50fbe0a7bf6d7f2f7 Template:Ombox 10 41 73 2020-04-01T06:12:36Z en>MusikAnimal 0 1 revision imported wikitext text/x-wiki {{#invoke:Message box|ombox}}<noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude> 0e54065432d540737b9e56c4e3a8e7f74d4534ea Template:Para 10 42 75 2020-04-01T06:12:37Z en>MusikAnimal 0 1 revision imported wikitext text/x-wiki <code class="nowrap" style="{{SAFESUBST:<noinclude />#if:{{{plain|}}}|border: none; background-color: inherit;}} {{SAFESUBST:<noinclude />#if:{{{plain|}}}{{{mxt|}}}{{{green|}}}{{{!mxt|}}}{{{red|}}}|color: {{SAFESUBST:<noinclude />#if:{{{mxt|}}}{{{green|}}}|#006400|{{SAFESUBST:<noinclude />#if:{{{!mxt|}}}{{{red|}}}|#8B0000|inherit}}}};}} {{SAFESUBST:<noinclude />#if:{{{style|}}}|{{{style}}}}}">&#124;{{SAFESUBST:<noinclude />#if:{{{1|}}}|{{{1}}}&#61;}}{{{2|}}}</code><noinclude> {{Documentation}} <!--Categories and interwikis go near the bottom of the /doc subpage.--> </noinclude> 96ef5dce1fb3a5c1b6648eac125a2496944a852e Module:Arguments 828 60 111 2020-04-01T06:12:40Z en>MusikAnimal 0 1 revision imported Scribunto text/plain -- This module provides easy processing of arguments passed to Scribunto from -- #invoke. It is intended for use by other Lua modules, and should not be -- called from #invoke directly. local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local arguments = {} -- Generate four different tidyVal functions, so that we don't have to check the -- options every time we call it. local function tidyValDefault(key, val) if type(val) == 'string' then val = val:match('^%s*(.-)%s*$') if val == '' then return nil else return val end else return val end end local function tidyValTrimOnly(key, val) if type(val) == 'string' then return val:match('^%s*(.-)%s*$') else return val end end local function tidyValRemoveBlanksOnly(key, val) if type(val) == 'string' then if val:find('%S') then return val else return nil end else return val end end local function tidyValNoChange(key, val) return val end local function matchesTitle(given, title) local tp = type( given ) return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title end local translate_mt = { __index = function(t, k) return k end } function arguments.getArgs(frame, options) checkType('getArgs', 1, frame, 'table', true) checkType('getArgs', 2, options, 'table', true) frame = frame or {} options = options or {} --[[ -- Set up argument translation. --]] options.translate = options.translate or {} if getmetatable(options.translate) == nil then setmetatable(options.translate, translate_mt) end if options.backtranslate == nil then options.backtranslate = {} for k,v in pairs(options.translate) do options.backtranslate[v] = k end end if options.backtranslate and getmetatable(options.backtranslate) == nil then setmetatable(options.backtranslate, { __index = function(t, k) if options.translate[k] ~= k then return nil else return k end end }) end --[[ -- Get the argument tables. If we were passed a valid frame object, get the -- frame arguments (fargs) and the parent frame arguments (pargs), depending -- on the options set and on the parent frame's availability. If we weren't -- passed a valid frame object, we are being called from another Lua module -- or from the debug console, so assume that we were passed a table of args -- directly, and assign it to a new variable (luaArgs). --]] local fargs, pargs, luaArgs if type(frame.args) == 'table' and type(frame.getParent) == 'function' then if options.wrappers then --[[ -- The wrappers option makes Module:Arguments look up arguments in -- either the frame argument table or the parent argument table, but -- not both. This means that users can use either the #invoke syntax -- or a wrapper template without the loss of performance associated -- with looking arguments up in both the frame and the parent frame. -- Module:Arguments will look up arguments in the parent frame -- if it finds the parent frame's title in options.wrapper; -- otherwise it will look up arguments in the frame object passed -- to getArgs. --]] local parent = frame:getParent() if not parent then fargs = frame.args else local title = parent:getTitle():gsub('/sandbox$', '') local found = false if matchesTitle(options.wrappers, title) then found = true elseif type(options.wrappers) == 'table' then for _,v in pairs(options.wrappers) do if matchesTitle(v, title) then found = true break end end end -- We test for false specifically here so that nil (the default) acts like true. if found or options.frameOnly == false then pargs = parent.args end if not found or options.parentOnly == false then fargs = frame.args end end else -- options.wrapper isn't set, so check the other options. if not options.parentOnly then fargs = frame.args end if not options.frameOnly then local parent = frame:getParent() pargs = parent and parent.args or nil end end if options.parentFirst then fargs, pargs = pargs, fargs end else luaArgs = frame end -- Set the order of precedence of the argument tables. If the variables are -- nil, nothing will be added to the table, which is how we avoid clashes -- between the frame/parent args and the Lua args. local argTables = {fargs} argTables[#argTables + 1] = pargs argTables[#argTables + 1] = luaArgs --[[ -- Generate the tidyVal function. If it has been specified by the user, we -- use that; if not, we choose one of four functions depending on the -- options chosen. This is so that we don't have to call the options table -- every time the function is called. --]] local tidyVal = options.valueFunc if tidyVal then if type(tidyVal) ~= 'function' then error( "bad value assigned to option 'valueFunc'" .. '(function expected, got ' .. type(tidyVal) .. ')', 2 ) end elseif options.trim ~= false then if options.removeBlanks ~= false then tidyVal = tidyValDefault else tidyVal = tidyValTrimOnly end else if options.removeBlanks ~= false then tidyVal = tidyValRemoveBlanksOnly else tidyVal = tidyValNoChange end end --[[ -- Set up the args, metaArgs and nilArgs tables. args will be the one -- accessed from functions, and metaArgs will hold the actual arguments. Nil -- arguments are memoized in nilArgs, and the metatable connects all of them -- together. --]] local args, metaArgs, nilArgs, metatable = {}, {}, {}, {} setmetatable(args, metatable) local function mergeArgs(tables) --[[ -- Accepts multiple tables as input and merges their keys and values -- into one table. If a value is already present it is not overwritten; -- tables listed earlier have precedence. We are also memoizing nil -- values, which can be overwritten if they are 's' (soft). --]] for _, t in ipairs(tables) do for key, val in pairs(t) do if metaArgs[key] == nil and nilArgs[key] ~= 'h' then local tidiedVal = tidyVal(key, val) if tidiedVal == nil then nilArgs[key] = 's' else metaArgs[key] = tidiedVal end end end end end --[[ -- Define metatable behaviour. Arguments are memoized in the metaArgs table, -- and are only fetched from the argument tables once. Fetching arguments -- from the argument tables is the most resource-intensive step in this -- module, so we try and avoid it where possible. For this reason, nil -- arguments are also memoized, in the nilArgs table. Also, we keep a record -- in the metatable of when pairs and ipairs have been called, so we do not -- run pairs and ipairs on the argument tables more than once. We also do -- not run ipairs on fargs and pargs if pairs has already been run, as all -- the arguments will already have been copied over. --]] metatable.__index = function (t, key) --[[ -- Fetches an argument when the args table is indexed. First we check -- to see if the value is memoized, and if not we try and fetch it from -- the argument tables. When we check memoization, we need to check -- metaArgs before nilArgs, as both can be non-nil at the same time. -- If the argument is not present in metaArgs, we also check whether -- pairs has been run yet. If pairs has already been run, we return nil. -- This is because all the arguments will have already been copied into -- metaArgs by the mergeArgs function, meaning that any other arguments -- must be nil. --]] if type(key) == 'string' then key = options.translate[key] end local val = metaArgs[key] if val ~= nil then return val elseif metatable.donePairs or nilArgs[key] then return nil end for _, argTable in ipairs(argTables) do local argTableVal = tidyVal(key, argTable[key]) if argTableVal ~= nil then metaArgs[key] = argTableVal return argTableVal end end nilArgs[key] = 'h' return nil end metatable.__newindex = function (t, key, val) -- This function is called when a module tries to add a new value to the -- args table, or tries to change an existing value. if type(key) == 'string' then key = options.translate[key] end if options.readOnly then error( 'could not write to argument table key "' .. tostring(key) .. '"; the table is read-only', 2 ) elseif options.noOverwrite and args[key] ~= nil then error( 'could not write to argument table key "' .. tostring(key) .. '"; overwriting existing arguments is not permitted', 2 ) elseif val == nil then --[[ -- If the argument is to be overwritten with nil, we need to erase -- the value in metaArgs, so that __index, __pairs and __ipairs do -- not use a previous existing value, if present; and we also need -- to memoize the nil in nilArgs, so that the value isn't looked -- up in the argument tables if it is accessed again. --]] metaArgs[key] = nil nilArgs[key] = 'h' else metaArgs[key] = val end end local function translatenext(invariant) local k, v = next(invariant.t, invariant.k) invariant.k = k if k == nil then return nil elseif type(k) ~= 'string' or not options.backtranslate then return k, v else local backtranslate = options.backtranslate[k] if backtranslate == nil then -- Skip this one. This is a tail call, so this won't cause stack overflow return translatenext(invariant) else return backtranslate, v end end end metatable.__pairs = function () -- Called when pairs is run on the args table. if not metatable.donePairs then mergeArgs(argTables) metatable.donePairs = true end return translatenext, { t = metaArgs } end local function inext(t, i) -- This uses our __index metamethod local v = t[i + 1] if v ~= nil then return i + 1, v end end metatable.__ipairs = function (t) -- Called when ipairs is run on the args table. return inext, t, 0 end return args end return arguments 3134ecce8429b810d445e29eae115e2ae4c36c53 Module:Yesno 828 90 171 2020-04-01T06:27:55Z en>MusikAnimal 0 Undid revision 948472533 by [[Special:Contributions/w>Vogone|w>Vogone]] ([[User talk:w>Vogone|talk]]) Scribunto text/plain -- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to the template {{yesno}}. return function (val, default) -- If your wiki uses non-ascii characters for any of "yes", "no", etc., you -- should replace "val:lower()" with "mw.ustring.lower(val)" in the -- following line. val = type(val) == 'string' and val:lower() or val if val == nil then return nil elseif val == true or val == 'yes' or val == 'y' or val == 'true' or val == 't' or val == 'on' or tonumber(val) == 1 then return true elseif val == false or val == 'no' or val == 'n' or val == 'false' or val == 'f' or val == 'off' or tonumber(val) == 0 then return false else return default end end f767643e7d12126d020d88d662a3dd057817b9dc Module:No globals 828 78 147 2020-04-01T06:28:55Z en>MusikAnimal 0 Undid revision 948472525 by [[Special:Contributions/w>DiBabelYurikBot|w>DiBabelYurikBot]] ([[User talk:w>DiBabelYurikBot|talk]]) Scribunto text/plain local mt = getmetatable(_G) or {} function mt.__index (t, k) if k ~= 'arg' then error('Tried to read nil global ' .. tostring(k), 2) end return nil end function mt.__newindex(t, k, v) if k ~= 'arg' then error('Tried to write global ' .. tostring(k), 2) end rawset(t, k, v) end setmetatable(_G, mt) 8ce3969f7d53b08bd00dabe4cc9780bc6afd412a Module:File link 828 67 125 2020-04-01T06:31:54Z en>MusikAnimal 0 Undid revision 948472508 by [[Special:Contributions/w>IPad365|w>IPad365]] ([[User talk:w>IPad365|talk]]) Scribunto text/plain -- This module provides a library for formatting file wikilinks. local yesno = require('Module:Yesno') local checkType = require('libraryUtil').checkType local p = {} function p._main(args) checkType('_main', 1, args, 'table') -- This is basically libraryUtil.checkTypeForNamedArg, but we are rolling our -- own function to get the right error level. local function checkArg(key, val, level) if type(val) ~= 'string' then error(string.format( "type error in '%s' parameter of '_main' (expected string, got %s)", key, type(val) ), level) end end local ret = {} -- Adds a positional parameter to the buffer. local function addPositional(key) local val = args[key] if not val then return nil end checkArg(key, val, 4) ret[#ret + 1] = val end -- Adds a named parameter to the buffer. We assume that the parameter name -- is the same as the argument key. local function addNamed(key) local val = args[key] if not val then return nil end checkArg(key, val, 4) ret[#ret + 1] = key .. '=' .. val end -- Filename checkArg('file', args.file, 3) ret[#ret + 1] = 'File:' .. args.file -- Format if args.format then checkArg('format', args.format) if args.formatfile then checkArg('formatfile', args.formatfile) ret[#ret + 1] = args.format .. '=' .. args.formatfile else ret[#ret + 1] = args.format end end -- Border if yesno(args.border) then ret[#ret + 1] = 'border' end addPositional('location') addPositional('alignment') addPositional('size') addNamed('upright') addNamed('link') addNamed('alt') addNamed('page') addNamed('class') addNamed('lang') addNamed('start') addNamed('end') addNamed('thumbtime') addPositional('caption') return string.format('[[%s]]', table.concat(ret, '|')) end function p.main(frame) local origArgs = require('Module:Arguments').getArgs(frame, { wrappers = 'Template:File link' }) if not origArgs.file then error("'file' parameter missing from [[Template:File link]]", 0) end -- Copy the arguments that were passed to a new table to avoid looking up -- every possible parameter in the frame object. local args = {} for k, v in pairs(origArgs) do -- Make _BLANK a special argument to add a blank parameter. For use in -- conditional templates etc. it is useful for blank arguments to be -- ignored, but we still need a way to specify them so that we can do -- things like [[File:Example.png|link=]]. if v == '_BLANK' then v = '' end args[k] = v end return p._main(args) end return p 66925f088d11530f2482f04181a3baaaa0ad3d0c Template:Sandbox other 10 43 77 2020-04-03T00:08:09Z en>Evad37 0 Also match subpage names beginning with "sandbox", per [[Template_talk:Sandbox_other#Template-protected_edit_request_on_28_March_2020|edit request]] wikitext text/x-wiki {{#if:{{#ifeq:{{#invoke:String|sublength|s={{SUBPAGENAME}}|i=0|len=7}}|sandbox|1}}{{#ifeq:{{SUBPAGENAME}}|doc|1}}{{#invoke:String|match|{{PAGENAME}}|/sandbox/styles.css$|plain=false|nomatch=}}|{{{1|}}}|{{{2|}}}}}<!-- --><noinclude>{{documentation}}</noinclude> 91e4ae891d6b791615152c1fbc971414961ba872 Template:CSS3 multiple column layout 10 19 29 2020-06-21T04:16:29Z en>IagoQnsi 0 clear:right (to play nicely with other right-floated templates) wikitext text/x-wiki {| class="wikitable" style="float:right;clear:right;font-size:90%;margin:0 0 1em 1em;text-align:center;line-height:1.25em;" |+ style="line-height:1.25em;padding-bottom:0.25em;"| CSS3 multiple-column layout browser support |- ! Property !! [[Internet Explorer|Internet<br />Explorer]] !! [[Firefox]] !! [[Safari (web browser)|Safari]] !! [[Google Chrome|Chrome]] !! [[Opera (web browser)|Opera]] |- | column-width<br/>column-count | {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{yes|≥ 1.5<br />{{smaller|(2005)}}}} || {{yes|≥ 3<br />{{smaller|(2007)}}}} || {{yes|≥ 1<br />{{smaller|(2008)}}}} || {{yes|≥ 11.1<br />{{smaller|(2011)}}}} |- | columns | {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{yes|≥ 9<br />{{smaller|(2011)}}}} || {{yes|≥ 3<br />{{smaller|(2007)}}}} || {{yes|≥ 1<br />{{smaller|(2008)}}}} || {{yes|≥ 11.1<br />{{smaller|(2011)}}}} |- | break-before<br/>break-after<br/>break-inside | {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{maybe|≥ 65<br />{{smaller|(2019)}}}}<!-- no break-after --> || {{yes|≥ 10<br />{{smaller|(2016)}}}} || {{maybe|≥ 65<br />{{smaller|(2016)}}}}<!-- no break-after --> || {{maybe|≥ 15<br />{{smaller|(2013)}}}}<!-- no break-after --> |- |colspan="6" style="text-align:right"|{{navbar|CSS3 multiple column layout|mini=y}} |}<noinclude> {{Documentation}} </noinclude> c44910bab9b28d152d3b51049cbfed9bf55dcca5 Template:Uses TemplateStyles 10 56 103 2020-06-21T18:00:10Z en>MusikBot II 0 Protected "[[Template:Uses TemplateStyles]]": [[Wikipedia:High-risk templates|High-risk template or module]] ([[User:MusikBot II/TemplateProtector|more info]]) ([Edit=Require autoconfirmed or confirmed access] (indefinite)) wikitext text/x-wiki <includeonly>{{#invoke:Uses TemplateStyles|main}}</includeonly><noinclude> {{Uses TemplateStyles|Template:Uses TemplateStyles/example.css|nocat=true}} {{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude> 7e26d8f257e302bd8a3dcbe53f52741ae0884f74 Module:Section link 828 81 153 2020-06-30T19:17:25Z en>Primefac 0 fix error for when {{}} are used inside of the slink (TPER) Scribunto text/plain -- This module implements {{section link}}. require('Module:No globals'); local checkType = require('libraryUtil').checkType local p = {} local function makeSectionLink(page, section, display) display = display or section page = page or '' -- MediaWiki doesn't allow these in `page`, so only need to do for `section` if type(section) == 'string' then section = string.gsub(section, "{", "&#x7B;") section = string.gsub(section, "}", "&#x7D;") end return string.format('[[%s#%s|%s]]', page, section, display) end local function normalizeTitle(title) title = mw.ustring.gsub(mw.ustring.gsub(title, "'", ""), '"', '') title = mw.ustring.gsub(title, "%b<>", "") return mw.title.new(title).prefixedText end function p._main(page, sections, options, title) -- Validate input. checkType('_main', 1, page, 'string', true) checkType('_main', 3, options, 'table', true) if sections == nil then sections = {} elseif type(sections) == 'string' then sections = {sections} elseif type(sections) ~= 'table' then error(string.format( "type error in argument #2 to '_main' " .. "(string, table or nil expected, got %s)", type(sections) ), 2) end options = options or {} title = title or mw.title.getCurrentTitle() -- Deal with blank page names elegantly if page and not page:find('%S') then page = nil options.nopage = true end -- Make the link(s). local isShowingPage = not options.nopage if #sections <= 1 then local linkPage = page or '' local section = sections[1] or 'Notes' local display = '§&nbsp;' .. section if isShowingPage then page = page or title.prefixedText if options.display and options.display ~= '' then if normalizeTitle(options.display) == normalizeTitle(page) then display = options.display .. ' ' .. display else error(string.format( 'Display title "%s" was ignored since it is ' .. "not equivalent to the page's actual title", options.display ), 0) end else display = page .. ' ' .. display end end return makeSectionLink(linkPage, section, display) else -- Multiple sections. First, make a list of the links to display. local ret = {} for i, section in ipairs(sections) do ret[i] = makeSectionLink(page, section) end -- Assemble the list of links into a string with mw.text.listToText. -- We use the default separator for mw.text.listToText, but a custom -- conjunction. There is also a special case conjunction if we only -- have two links. local conjunction if #sections == 2 then conjunction = '&#8203; and ' else conjunction = ', and ' end ret = mw.text.listToText(ret, nil, conjunction) -- Add the intro text. local intro = '§§&nbsp;' if isShowingPage then intro = (page or title.prefixedText) .. ' ' .. intro end ret = intro .. ret return ret end end function p.main(frame) local yesno = require('Module:Yesno') local args = require('Module:Arguments').getArgs(frame, { wrappers = 'Template:Section link', valueFunc = function (key, value) value = value:match('^%s*(.-)%s*$') -- Trim whitespace -- Allow blank first parameters, as the wikitext template does this. if value ~= '' or key == 1 then return value end end }) for k, v in pairs(args) do -- replace underscores in the positional parameter values if 'number' == type(k) then if not yesno (args['keep-underscores']) then -- unless |keep-underscores=yes args[k] = mw.uri.decode (v, 'WIKI'); -- percent-decode; replace underscores with space characters else args[k] = mw.uri.decode (v, 'PATH'); -- percent-decode; retain underscores end end end -- Sort the arguments. local page local sections, options = {}, {} for k, v in pairs(args) do if k == 1 then -- Doing this in the loop because of a bug in [[Module:Arguments]] -- when using pairs with deleted arguments. page = mw.text.decode(v, true) elseif type(k) == 'number' then sections[k] = v else options[k] = v end end options.nopage = yesno (options.nopage); -- make boolean -- Extract section from page, if present if page then local p, s = page:match('^(.-)#(.*)$') if p then page, sections[1] = p, s end end -- Compress the sections array. local function compressArray(t) local nums, ret = {}, {} for num in pairs(t) do nums[#nums + 1] = num end table.sort(nums) for i, num in ipairs(nums) do ret[i] = t[num] end return ret end sections = compressArray(sections) return p._main(page, sections, options) end return p 712a4e62cbae4ef21220d701037b207aec105d45 Module:String 828 82 155 2020-08-02T15:49:42Z en>RexxS 0 separate annotations for str.match from those for str._match Scribunto text/plain --[[ This module is intended to provide access to basic string functions. Most of the functions provided here can be invoked with named parameters, unnamed parameters, or a mixture. If named parameters are used, Mediawiki will automatically remove any leading or trailing whitespace from the parameter. Depending on the intended use, it may be advantageous to either preserve or remove such whitespace. Global options ignore_errors: If set to 'true' or 1, any error condition will result in an empty string being returned rather than an error message. error_category: If an error occurs, specifies the name of a category to include with the error message. The default category is [Category:Errors reported by Module String]. no_category: If set to 'true' or 1, no category will be added if an error is generated. Unit tests for this module are available at Module:String/tests. ]] local str = {} --[[ len This function returns the length of the target string. Usage: {{#invoke:String|len|target_string|}} OR {{#invoke:String|len|s=target_string}} Parameters s: The string whose length to report If invoked using named parameters, Mediawiki will automatically remove any leading or trailing whitespace from the target string. ]] function str.len( frame ) local new_args = str._getParameters( frame.args, {'s'} ) local s = new_args['s'] or '' return mw.ustring.len( s ) end --[[ sub This function returns a substring of the target string at specified indices. Usage: {{#invoke:String|sub|target_string|start_index|end_index}} OR {{#invoke:String|sub|s=target_string|i=start_index|j=end_index}} Parameters s: The string to return a subset of i: The fist index of the substring to return, defaults to 1. j: The last index of the string to return, defaults to the last character. The first character of the string is assigned an index of 1. If either i or j is a negative value, it is interpreted the same as selecting a character by counting from the end of the string. Hence, a value of -1 is the same as selecting the last character of the string. If the requested indices are out of range for the given string, an error is reported. ]] function str.sub( frame ) local new_args = str._getParameters( frame.args, { 's', 'i', 'j' } ) local s = new_args['s'] or '' local i = tonumber( new_args['i'] ) or 1 local j = tonumber( new_args['j'] ) or -1 local len = mw.ustring.len( s ) -- Convert negatives for range checking if i < 0 then i = len + i + 1 end if j < 0 then j = len + j + 1 end if i > len or j > len or i < 1 or j < 1 then return str._error( 'String subset index out of range' ) end if j < i then return str._error( 'String subset indices out of order' ) end return mw.ustring.sub( s, i, j ) end --[[ This function implements that features of {{str sub old}} and is kept in order to maintain these older templates. ]] function str.sublength( frame ) local i = tonumber( frame.args.i ) or 0 local len = tonumber( frame.args.len ) return mw.ustring.sub( frame.args.s, i + 1, len and ( i + len ) ) end --[[ _match This function returns a substring from the source string that matches a specified pattern. It is exported for use in other modules Usage: strmatch = require("Module:String")._match sresult = strmatch( s, pattern, start, match, plain, nomatch ) Parameters s: The string to search pattern: The pattern or string to find within the string start: The index within the source string to start the search. The first character of the string has index 1. Defaults to 1. match: In some cases it may be possible to make multiple matches on a single string. This specifies which match to return, where the first match is match= 1. If a negative number is specified then a match is returned counting from the last match. Hence match = -1 is the same as requesting the last match. Defaults to 1. plain: A flag indicating that the pattern should be understood as plain text. Defaults to false. nomatch: If no match is found, output the "nomatch" value rather than an error. For information on constructing Lua patterns, a form of [regular expression], see: * http://www.lua.org/manual/5.1/manual.html#5.4.1 * http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns * http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns ]] -- This sub-routine is exported for use in other modules function str._match( s, pattern, start, match_index, plain_flag, nomatch ) if s == '' then return str._error( 'Target string is empty' ) end if pattern == '' then return str._error( 'Pattern string is empty' ) end start = tonumber(start) or 1 if math.abs(start) < 1 or math.abs(start) > mw.ustring.len( s ) then return str._error( 'Requested start is out of range' ) end if match_index == 0 then return str._error( 'Match index is out of range' ) end if plain_flag then pattern = str._escapePattern( pattern ) end local result if match_index == 1 then -- Find first match is simple case result = mw.ustring.match( s, pattern, start ) else if start > 1 then s = mw.ustring.sub( s, start ) end local iterator = mw.ustring.gmatch(s, pattern) if match_index > 0 then -- Forward search for w in iterator do match_index = match_index - 1 if match_index == 0 then result = w break end end else -- Reverse search local result_table = {} local count = 1 for w in iterator do result_table[count] = w count = count + 1 end result = result_table[ count + match_index ] end end if result == nil then if nomatch == nil then return str._error( 'Match not found' ) else return nomatch end else return result end end --[[ match This function returns a substring from the source string that matches a specified pattern. Usage: {{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}} OR {{#invoke:String|match|s=source_string|pattern=pattern_string|start=start_index |match=match_number|plain=plain_flag|nomatch=nomatch_output}} Parameters s: The string to search pattern: The pattern or string to find within the string start: The index within the source string to start the search. The first character of the string has index 1. Defaults to 1. match: In some cases it may be possible to make multiple matches on a single string. This specifies which match to return, where the first match is match= 1. If a negative number is specified then a match is returned counting from the last match. Hence match = -1 is the same as requesting the last match. Defaults to 1. plain: A flag indicating that the pattern should be understood as plain text. Defaults to false. nomatch: If no match is found, output the "nomatch" value rather than an error. If invoked using named parameters, Mediawiki will automatically remove any leading or trailing whitespace from each string. In some circumstances this is desirable, in other cases one may want to preserve the whitespace. If the match_number or start_index are out of range for the string being queried, then this function generates an error. An error is also generated if no match is found. If one adds the parameter ignore_errors=true, then the error will be suppressed and an empty string will be returned on any failure. For information on constructing Lua patterns, a form of [regular expression], see: * http://www.lua.org/manual/5.1/manual.html#5.4.1 * http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns * http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns ]] -- This is the entry point for #invoke:String|match function str.match( frame ) local new_args = str._getParameters( frame.args, {'s', 'pattern', 'start', 'match', 'plain', 'nomatch'} ) local s = new_args['s'] or '' local start = tonumber( new_args['start'] ) or 1 local plain_flag = str._getBoolean( new_args['plain'] or false ) local pattern = new_args['pattern'] or '' local match_index = math.floor( tonumber(new_args['match']) or 1 ) local nomatch = new_args['nomatch'] return str._match( s, pattern, start, match_index, plain_flag, nomatch ) end --[[ pos This function returns a single character from the target string at position pos. Usage: {{#invoke:String|pos|target_string|index_value}} OR {{#invoke:String|pos|target=target_string|pos=index_value}} Parameters target: The string to search pos: The index for the character to return If invoked using named parameters, Mediawiki will automatically remove any leading or trailing whitespace from the target string. In some circumstances this is desirable, in other cases one may want to preserve the whitespace. The first character has an index value of 1. If one requests a negative value, this function will select a character by counting backwards from the end of the string. In other words pos = -1 is the same as asking for the last character. A requested value of zero, or a value greater than the length of the string returns an error. ]] function str.pos( frame ) local new_args = str._getParameters( frame.args, {'target', 'pos'} ) local target_str = new_args['target'] or '' local pos = tonumber( new_args['pos'] ) or 0 if pos == 0 or math.abs(pos) > mw.ustring.len( target_str ) then return str._error( 'String index out of range' ) end return mw.ustring.sub( target_str, pos, pos ) end --[[ str_find This function duplicates the behavior of {{str_find}}, including all of its quirks. This is provided in order to support existing templates, but is NOT RECOMMENDED for new code and templates. New code is recommended to use the "find" function instead. Returns the first index in "source" that is a match to "target". Indexing is 1-based, and the function returns -1 if the "target" string is not present in "source". Important Note: If the "target" string is empty / missing, this function returns a value of "1", which is generally unexpected behavior, and must be accounted for separatetly. ]] function str.str_find( frame ) local new_args = str._getParameters( frame.args, {'source', 'target'} ) local source_str = new_args['source'] or '' local target_str = new_args['target'] or '' if target_str == '' then return 1 end local start = mw.ustring.find( source_str, target_str, 1, true ) if start == nil then start = -1 end return start end --[[ find This function allows one to search for a target string or pattern within another string. Usage: {{#invoke:String|find|source_str|target_string|start_index|plain_flag}} OR {{#invoke:String|find|source=source_str|target=target_str|start=start_index|plain=plain_flag}} Parameters source: The string to search target: The string or pattern to find within source start: The index within the source string to start the search, defaults to 1 plain: Boolean flag indicating that target should be understood as plain text and not as a Lua style regular expression, defaults to true If invoked using named parameters, Mediawiki will automatically remove any leading or trailing whitespace from the parameter. In some circumstances this is desirable, in other cases one may want to preserve the whitespace. This function returns the first index >= "start" where "target" can be found within "source". Indices are 1-based. If "target" is not found, then this function returns 0. If either "source" or "target" are missing / empty, this function also returns 0. This function should be safe for UTF-8 strings. ]] function str.find( frame ) local new_args = str._getParameters( frame.args, {'source', 'target', 'start', 'plain' } ) local source_str = new_args['source'] or '' local pattern = new_args['target'] or '' local start_pos = tonumber(new_args['start']) or 1 local plain = new_args['plain'] or true if source_str == '' or pattern == '' then return 0 end plain = str._getBoolean( plain ) local start = mw.ustring.find( source_str, pattern, start_pos, plain ) if start == nil then start = 0 end return start end --[[ replace This function allows one to replace a target string or pattern within another string. Usage: {{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}} OR {{#invoke:String|replace|source=source_string|pattern=pattern_string|replace=replace_string| count=replacement_count|plain=plain_flag}} Parameters source: The string to search pattern: The string or pattern to find within source replace: The replacement text count: The number of occurences to replace, defaults to all. plain: Boolean flag indicating that pattern should be understood as plain text and not as a Lua style regular expression, defaults to true ]] function str.replace( frame ) local new_args = str._getParameters( frame.args, {'source', 'pattern', 'replace', 'count', 'plain' } ) local source_str = new_args['source'] or '' local pattern = new_args['pattern'] or '' local replace = new_args['replace'] or '' local count = tonumber( new_args['count'] ) local plain = new_args['plain'] or true if source_str == '' or pattern == '' then return source_str end plain = str._getBoolean( plain ) if plain then pattern = str._escapePattern( pattern ) replace = mw.ustring.gsub( replace, "%%", "%%%%" ) --Only need to escape replacement sequences. end local result if count ~= nil then result = mw.ustring.gsub( source_str, pattern, replace, count ) else result = mw.ustring.gsub( source_str, pattern, replace ) end return result end --[[ simple function to pipe string.rep to templates. ]] function str.rep( frame ) local repetitions = tonumber( frame.args[2] ) if not repetitions then return str._error( 'function rep expects a number as second parameter, received "' .. ( frame.args[2] or '' ) .. '"' ) end return string.rep( frame.args[1] or '', repetitions ) end --[[ escapePattern This function escapes special characters from a Lua string pattern. See [1] for details on how patterns work. [1] https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns Usage: {{#invoke:String|escapePattern|pattern_string}} Parameters pattern_string: The pattern string to escape. ]] function str.escapePattern( frame ) local pattern_str = frame.args[1] if not pattern_str then return str._error( 'No pattern string specified' ) end local result = str._escapePattern( pattern_str ) return result end --[[ count This function counts the number of occurrences of one string in another. ]] function str.count(frame) local args = str._getParameters(frame.args, {'source', 'pattern', 'plain'}) local source = args.source or '' local pattern = args.pattern or '' local plain = str._getBoolean(args.plain or true) if plain then pattern = str._escapePattern(pattern) end local _, count = mw.ustring.gsub(source, pattern, '') return count end --[[ endswith This function determines whether a string ends with another string. ]] function str.endswith(frame) local args = str._getParameters(frame.args, {'source', 'pattern'}) local source = args.source or '' local pattern = args.pattern or '' if pattern == '' then -- All strings end with the empty string. return "yes" end if mw.ustring.sub(source, -mw.ustring.len(pattern), -1) == pattern then return "yes" else return "" end end --[[ join Join all non empty arguments together; the first argument is the separator. Usage: {{#invoke:String|join|sep|one|two|three}} ]] function str.join(frame) local args = {} local sep for _, v in ipairs( frame.args ) do if sep then if v ~= '' then table.insert(args, v) end else sep = v end end return table.concat( args, sep or '' ) end --[[ Helper function that populates the argument list given that user may need to use a mix of named and unnamed parameters. This is relevant because named parameters are not identical to unnamed parameters due to string trimming, and when dealing with strings we sometimes want to either preserve or remove that whitespace depending on the application. ]] function str._getParameters( frame_args, arg_list ) local new_args = {} local index = 1 local value for _, arg in ipairs( arg_list ) do value = frame_args[arg] if value == nil then value = frame_args[index] index = index + 1 end new_args[arg] = value end return new_args end --[[ Helper function to handle error messages. ]] function str._error( error_str ) local frame = mw.getCurrentFrame() local error_category = frame.args.error_category or 'Errors reported by Module String' local ignore_errors = frame.args.ignore_errors or false local no_category = frame.args.no_category or false if str._getBoolean(ignore_errors) then return '' end local error_str = '<strong class="error">String Module Error: ' .. error_str .. '</strong>' if error_category ~= '' and not str._getBoolean( no_category ) then error_str = '[[Category:' .. error_category .. ']]' .. error_str end return error_str end --[[ Helper Function to interpret boolean strings ]] function str._getBoolean( boolean_str ) local boolean_value if type( boolean_str ) == 'string' then boolean_str = boolean_str:lower() if boolean_str == 'false' or boolean_str == 'no' or boolean_str == '0' or boolean_str == '' then boolean_value = false else boolean_value = true end elseif type( boolean_str ) == 'boolean' then boolean_value = boolean_str else error( 'No boolean value found' ) end return boolean_value end --[[ Helper function that escapes all pattern characters so that they will be treated as plain text. ]] function str._escapePattern( pattern_str ) return mw.ustring.gsub( pattern_str, "([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1" ) end return str 6df794dd52434e0f6a372c9918f5a9dedd15f579 Template:Code 10 21 33 2020-08-09T22:30:02Z en>Bsherr 0 adding comment wikitext text/x-wiki {{#tag:syntaxhighlight|{{{code|{{{1}}}}}}|lang={{{lang|{{{2|text}}}}}}|class={{{class|}}}|id={{{id|}}}|style={{{style|}}}|inline=1}}<noinclude> {{documentation}} <!-- Add categories to the /doc subpage, interwikis to Wikidata, not here --> </noinclude> 5d9b1a0980efe1b02eb91bc717438a5ae4a5ee04 Template:Yesno 10 58 107 2020-08-28T03:15:17Z en>Xaosflux 0 add additional paramerters, "t", "f" - requested on talk - worked in sandbox /testcases wikitext text/x-wiki {{<includeonly>safesubst:</includeonly>#switch: {{<includeonly>safesubst:</includeonly>lc: {{{1|¬}}} }} |no |n |f |false |off |0 = {{{no|<!-- null -->}}} | = {{{blank|{{{no|<!-- null -->}}}}}} |¬ = {{{¬|}}} |yes |y |t |true |on |1 = {{{yes|yes}}} |#default = {{{def|{{{yes|yes}}}}}} }}<noinclude> {{Documentation}} </noinclude> 629c2937bc5cf7cfe13cd2a598582af832782399 Module:TNT 828 83 157 2020-08-30T07:28:25Z en>Johnuniq 0 Changed protection level for "[[Module:TNT]]": [[WP:High-risk templates|High-risk Lua module]]: per request at [[WP:RFPP]] to match [[Module:Excerpt]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite)) Scribunto text/plain -- -- INTRO: (!!! DO NOT RENAME THIS PAGE !!!) -- This module allows any template or module to be copy/pasted between -- wikis without any translation changes. All translation text is stored -- in the global Data:*.tab pages on Commons, and used everywhere. -- -- SEE: https://www.mediawiki.org/wiki/Multilingual_Templates_and_Modules -- -- ATTENTION: -- Please do NOT rename this module - it has to be identical on all wikis. -- This code is maintained at https://www.mediawiki.org/wiki/Module:TNT -- Please do not modify it anywhere else, as it may get copied and override your changes. -- Suggestions can be made at https://www.mediawiki.org/wiki/Module_talk:TNT -- -- DESCRIPTION: -- The "msg" function uses a Commons dataset to translate a message -- with a given key (e.g. source-table), plus optional arguments -- to the wiki markup in the current content language. -- Use lang=xx to set language. Example: -- -- {{#invoke:TNT | msg -- | I18n/Template:Graphs.tab <!-- https://commons.wikimedia.org/wiki/Data:I18n/Template:Graphs.tab --> -- | source-table <!-- uses a translation message with id = "source-table" --> -- | param1 }} <!-- optional parameter --> -- -- -- The "doc" function will generate the <templatedata> parameter documentation for templates. -- This way all template parameters can be stored and localized in a single Commons dataset. -- NOTE: "doc" assumes that all documentation is located in Data:Templatedata/* on Commons. -- -- {{#invoke:TNT | doc | Graph:Lines }} -- uses https://commons.wikimedia.org/wiki/Data:Templatedata/Graph:Lines.tab -- if the current page is Template:Graph:Lines/doc -- local p = {} local i18nDataset = 'I18n/Module:TNT.tab' -- Forward declaration of the local functions local sanitizeDataset, loadData, link, formatMessage function p.msg(frame) local dataset, id local params = {} local lang = nil for k, v in pairs(frame.args) do if k == 1 then dataset = mw.text.trim(v) elseif k == 2 then id = mw.text.trim(v) elseif type(k) == 'number' then table.insert(params, mw.text.trim(v)) elseif k == 'lang' and v ~= '_' then lang = mw.text.trim(v) end end return formatMessage(dataset, id, params, lang) end -- Identical to p.msg() above, but used from other lua modules -- Parameters: name of dataset, message key, optional arguments -- Example with 2 params: format('I18n/Module:TNT', 'error_bad_msgkey', 'my-key', 'my-dataset') function p.format(dataset, key, ...) local checkType = require('libraryUtil').checkType checkType('format', 1, dataset, 'string') checkType('format', 2, key, 'string') return formatMessage(dataset, key, {...}) end -- Identical to p.msg() above, but used from other lua modules with the language param -- Parameters: language code, name of dataset, message key, optional arguments -- Example with 2 params: formatInLanguage('es', I18n/Module:TNT', 'error_bad_msgkey', 'my-key', 'my-dataset') function p.formatInLanguage(lang, dataset, key, ...) local checkType = require('libraryUtil').checkType checkType('formatInLanguage', 1, lang, 'string') checkType('formatInLanguage', 2, dataset, 'string') checkType('formatInLanguage', 3, key, 'string') return formatMessage(dataset, key, {...}, lang) end -- Obsolete function that adds a 'c:' prefix to the first param. -- "Sandbox/Sample.tab" -> 'c:Data:Sandbox/Sample.tab' function p.link(frame) return link(frame.args[1]) end function p.doc(frame) local dataset = 'Templatedata/' .. sanitizeDataset(frame.args[1]) return frame:extensionTag('templatedata', p.getTemplateData(dataset)) .. formatMessage(i18nDataset, 'edit_doc', {link(dataset)}) end function p.getTemplateData(dataset) -- TODO: add '_' parameter once lua starts reindexing properly for "all" languages local data = loadData(dataset) local names = {} for _, field in pairs(data.schema.fields) do table.insert(names, field.name) end local params = {} local paramOrder = {} for _, row in pairs(data.data) do local newVal = {} local name = nil for pos, val in pairs(row) do local columnName = names[pos] if columnName == 'name' then name = val else newVal[columnName] = val end end if name then params[name] = newVal table.insert(paramOrder, name) end end -- Work around json encoding treating {"1":{...}} as an [{...}] params['zzz123']='' local json = mw.text.jsonEncode({ params=params, paramOrder=paramOrder, description=data.description }) json = string.gsub(json,'"zzz123":"",?', "") return json end -- Local functions sanitizeDataset = function(dataset) if not dataset then return nil end dataset = mw.text.trim(dataset) if dataset == '' then return nil elseif string.sub(dataset,-4) ~= '.tab' then return dataset .. '.tab' else return dataset end end loadData = function(dataset, lang) dataset = sanitizeDataset(dataset) if not dataset then error(formatMessage(i18nDataset, 'error_no_dataset', {})) end -- Give helpful error to thirdparties who try and copy this module. if not mw.ext or not mw.ext.data or not mw.ext.data.get then error('Missing JsonConfig extension; Cannot load https://commons.wikimedia.org/wiki/Data:' .. dataset) end local data = mw.ext.data.get(dataset, lang) if data == false then if dataset == i18nDataset then -- Prevent cyclical calls error('Missing Commons dataset ' .. i18nDataset) else error(formatMessage(i18nDataset, 'error_bad_dataset', {link(dataset)})) end end return data end -- Given a dataset name, convert it to a title with the 'commons:data:' prefix link = function(dataset) return 'c:Data:' .. mw.text.trim(dataset or '') end formatMessage = function(dataset, key, params, lang) for _, row in pairs(loadData(dataset, lang).data) do local id, msg = unpack(row) if id == key then local result = mw.message.newRawMessage(msg, unpack(params or {})) return result:plain() end end if dataset == i18nDataset then -- Prevent cyclical calls error('Invalid message key "' .. key .. '"') else error(formatMessage(i18nDataset, 'error_bad_msgkey', {key, link(dataset)})) end end return p 9d0d10e54abd232c806dcabccaf03e52858634a1 Template:Sup 10 47 85 2020-09-23T06:24:01Z en>RMCD bot 0 Removing notice of move discussion wikitext text/x-wiki <includeonly><sup>{{{1}}}</sup></includeonly><noinclude> {{documentation}} <!-- Add cats and interwikis to the /doc subpage, not here! --> </noinclude> d7d0f30bf52c68f2f488db57534de2552c40c938 Module:Effective protection level 828 66 123 2020-09-29T03:38:47Z en>Jackmcbarn 0 bring in changes from sandbox Scribunto text/plain local p = {} -- Returns the permission required to perform a given action on a given title. -- If no title is specified, the title of the page being displayed is used. function p._main(action, pagename) local title if type(pagename) == 'table' and pagename.prefixedText then title = pagename elseif pagename then title = mw.title.new(pagename) else title = mw.title.getCurrentTitle() end pagename = title.prefixedText if action == 'autoreview' then local level = mw.ext.FlaggedRevs.getStabilitySettings(title) level = level and level.autoreview if level == 'review' then return 'reviewer' elseif level ~= '' then return level else return nil -- not '*'. a page not being PC-protected is distinct from it being PC-protected with anyone able to review. also not '', as that would mean PC-protected but nobody can review end elseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' and action ~= 'undelete' then error( 'First parameter must be one of edit, move, create, upload, undelete, autoreview', 2 ) end if title.namespace == 8 then -- MediaWiki namespace if title.text:sub(-3) == '.js' or title.text:sub(-4) == '.css' or title.contentModel == 'javascript' or title.contentModel == 'css' then -- site JS or CSS page return 'interfaceadmin' else -- any non-JS/CSS MediaWiki page return 'sysop' end elseif title.namespace == 2 and title.isSubpage then if title.contentModel == 'javascript' or title.contentModel == 'css' then -- user JS or CSS page return 'interfaceadmin' elseif title.contentModel == 'json' then -- user JSON page return 'sysop' end end if action == 'undelete' then return 'sysop' end local level = title.protectionLevels[action] and title.protectionLevels[action][1] if level == 'sysop' or level == 'editprotected' then return 'sysop' elseif title.cascadingProtection.restrictions[action] and title.cascadingProtection.restrictions[action][1] then -- used by a cascading-protected page return 'sysop' elseif level == 'templateeditor' then return 'templateeditor' elseif action == 'move' then local blacklistentry = mw.ext.TitleBlacklist.test('edit', pagename) -- Testing action edit is correct, since this is for the source page. The target page name gets tested with action move. if blacklistentry and not blacklistentry.params.autoconfirmed then return 'templateeditor' elseif title.namespace == 6 then return 'filemover' elseif level == 'extendedconfirmed' then return 'extendedconfirmed' else return 'autoconfirmed' end end local blacklistentry = mw.ext.TitleBlacklist.test(action, pagename) if blacklistentry then if not blacklistentry.params.autoconfirmed then return 'templateeditor' elseif level == 'extendedconfirmed' then return 'extendedconfirmed' else return 'autoconfirmed' end elseif level == 'editsemiprotected' then -- create-semiprotected pages return this for some reason return 'autoconfirmed' elseif level then return level elseif action == 'upload' then return 'autoconfirmed' elseif action == 'create' and title.namespace % 2 == 0 and title.namespace ~= 118 then -- You need to be registered, but not autoconfirmed, to create non-talk pages other than drafts return 'user' else return '*' end end setmetatable(p, { __index = function(t, k) return function(frame) return t._main(k, frame.args[1]) end end }) return p 70256a489edf6be9808031b14a7e3ef3e025da97 Main Page 0 1 1 2020-10-20T03:23:34Z MediaWiki default 2 wikitext text/x-wiki <strong>MediaWiki has been installed.</strong> Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide] for information on using the wiki software. == Getting started == * [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list] * [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list] * [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language] * [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki] 5702e4d5fd9173246331a889294caf01a3ad3706 Seaboot 0 2 2 2020-10-26T22:17:35Z Wikiricky 1 test page wikitext text/x-wiki This page is purely for testing 72cb5a9e8963bcf288206f2aab88bb3b256c20d2 MediaWiki:Sidebar 8 3 3 2020-10-28T04:03:02Z Wikiricky 1 added create a page link wikitext text/x-wiki * navigation ** Create a Page|Special:CreatePage ** mainpage|mainpage-description ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES 3bb454a4cdbc8e5fdd8fdd03705f875741342ba9 4 3 2020-10-28T04:03:40Z Wikiricky 1 wikitext text/x-wiki * navigation ** Special:CreatePage|Create a Page ** mainpage|mainpage-description ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES cd70d4b7436c1b48c672e55f1c3a73fb53d43fcc MediaWiki:Spam-blacklist 8 4 5 2020-10-30T21:52:29Z Wikiricky 1 my first spammer wikitext text/x-wiki #<!-- leave this line exactly as it is --> <pre> # External URLs matching this list will be blocked when added to a page. # This list affects only this wiki; refer also to the global blacklist. # For documentation see https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:SpamBlacklist # # Syntax is as follows: # * Everything from a "#" character to the end of the line is a comment # * Every non-blank line is a regex fragment which will only match hosts inside URLs #</pre> <!-- leave this line exactly as it is --> \bPakarqq365\.net\b 543fc46e8c7934f061593bf4fbac5f9d98ccb327 6 5 2020-10-30T22:23:56Z Wikiricky 1 second spammer wikitext text/x-wiki #<!-- leave this line exactly as it is --> <pre> # External URLs matching this list will be blocked when added to a page. # This list affects only this wiki; refer also to the global blacklist. # For documentation see https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:SpamBlacklist # # Syntax is as follows: # * Everything from a "#" character to the end of the line is a comment # * Every non-blank line is a regex fragment which will only match hosts inside URLs #</pre> <!-- leave this line exactly as it is --> \bPakarqq365\.net\b \bbeatsoup\.net\b 14a24914063a18e78aba894aee7c77b36a69d7d2 Template:FlowMention 10 5 7 2020-10-31T00:08:24Z Flow talk page manager 28 /* Automatically created by Flow */ wikitext text/x-wiki @[[User:{{{1|Example}}}|{{{2|{{{1|Example}}}}}}]] 98786e33cb63444ac23e3cf2bdbcab2d9501a6e7 Template:LQT Moved thread stub converted to Flow 10 6 8 2020-10-31T00:08:24Z Flow talk page manager 28 /* Automatically created by Flow */ wikitext text/x-wiki This post by {{{author}}} was moved on {{{date}}}. You can find it at [[{{{title}}}]]. 792a92295d0603dc3cb5c46e15d4e42af9659414 Template:LQT page converted to Flow 10 7 9 2020-10-31T00:08:24Z Flow talk page manager 28 /* Automatically created by Flow */ wikitext text/x-wiki Previous page history was archived for backup purposes at <span class='flow-link-to-archive'>[[{{{archive}}}]]</span> on {{#time: Y-m-d|{{{date}}}}}. c988d60d1df8c49bcce1f4f94a9c2a5318faf0d3 Template:Archive for converted LQT page 10 8 10 2020-10-31T00:08:24Z Flow talk page manager 28 /* Automatically created by Flow */ wikitext text/x-wiki This page is an archived LiquidThreads page. <strong>Do not edit the contents of this page</strong>. Please direct any additional comments to the [[{{{from}}}|current talk page]]. 6f2232948be664f5eec18e4b7a6219814d38a478 Template:LQT post imported with suppressed user 10 9 11 2020-10-31T00:08:24Z Flow talk page manager 28 /* Automatically created by Flow */ wikitext text/x-wiki This revision was imported from LiquidThreads with a suppressed user. It has been reassigned to the current user. 0eb25fe53f4e146ddc0b16b14bd40d6069e56c06 Template:LQT post imported with different signature user 10 10 12 2020-10-31T00:08:24Z Flow talk page manager 28 /* Automatically created by Flow */ wikitext text/x-wiki <em>This post was posted by [[User:{{{authorUser}}}|{{{authorUser}}}]], but signed as [[User:{{{signatureUser}}}|{{{signatureUser}}}]].</em> 047294b02240e1b8526ad076eb47a07e98747bac Template:Wikitext talk page converted to Flow 10 11 13 2020-10-31T00:08:24Z Flow talk page manager 28 /* Automatically created by Flow */ wikitext text/x-wiki Previous discussion was archived at <span class='flow-link-to-archive'>[[{{{archive}}}]]</span> on {{#time: Y-m-d|{{{date}}}}}. 69c9712008fdef423f0f0332a7d4ffcfe65e6e76 Template:Archive for converted wikitext talk page 10 12 14 2020-10-31T00:08:24Z Flow talk page manager 28 /* Automatically created by Flow */ wikitext text/x-wiki This page is an archive. <strong>Do not edit the contents of this page</strong>. Please direct any additional comments to the [[{{{from|{{TALKSPACE}}:{{BASEPAGENAME}}}}}|current talk page]]. de059e2d945be0557b47d689299d8bd96e9699ed Module:Documentation/styles.css 828 64 119 2020-11-19T20:21:58Z en>Izno 0 Changed protection level for "[[Module:Documentation/styles.css]]": actually match module ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite)) sanitized-css text/css /* {{pp|small=yes}} */ .documentation, .documentation-metadata { border: 1px solid #a2a9b1; background-color: #ecfcf4; clear: both; } .documentation { margin: 1em 0 0 0; padding: 1em; } .documentation-metadata { margin: 0.2em 0; /* same margin left-right as .documentation */ font-style: italic; padding: 0.4em 1em; /* same padding left-right as .documentation */ } .documentation-startbox { padding-bottom: 3px; border-bottom: 1px solid #aaa; margin-bottom: 1ex; } .documentation-heading { font-weight: bold; font-size: 125%; } .documentation-clear { /* Don't want things to stick out where they shouldn't. */ clear: both; } .documentation-toolbar { font-style: normal; font-size: 85%; } ce0e629c92e3d825ab9fd927fe6cc37d9117b6cb Template:Tlx 10 55 101 2020-11-20T18:53:35Z en>Primefac 0 Primefac moved page [[Template:Tlx]] to [[Template:Template link expanded]] over redirect: expand name, make it more obvious wikitext text/x-wiki #REDIRECT [[Template:Template link expanded]] {{Redirect category shell| {{R from move}} }} 1fec988ceb46cb324af228aac45d7cd25fcc9008 Template:Template link expanded 10 51 93 2020-11-21T12:04:41Z en>Primefac 0 update wikitext text/x-wiki {{#Invoke:Template link general|main|code=on}}<noinclude> {{Documentation|1=Template:Tlg/doc |content = {{tlg/doc|tlx}} }} <!-- Add categories to the /doc subpage, not here! --> </noinclude> 6c99696fee02f1da368ed20d2504e19bc15b1c13 List of killings and shootings by law enforcement officers in Grenada 0 13 15 2020-12-02T23:46:59Z Ricky Thomas 29 page created wikitext text/x-wiki This is a list of people killed or shot by law enforcement officers in Grenada. The listing documents the occurrence of a death or shooting, asserting no implication or justification on the part of the person killed or the officer involved. {| class="wikitable sortable" |+ !Date !Victim !Location !Description !Result |- |2016-10-30 |Jerry Paul |[[Mt.Parnassus]] |shot while brandishing a cutlass |5 member coroner's inquest jury verdict - death by misadventure |- | | | | | |- | | | | | |} 63fb8d213b5eb9188d199750db132bf7f0b66a13 16 15 2020-12-02T23:53:35Z Ricky Thomas 29 added citation wikitext text/x-wiki This is a list of people killed or shot by law enforcement officers in Grenada. The listing documents the occurrence of a death or shooting, asserting no implication or justification on the part of the person killed or the officer involved. {| class="wikitable sortable" |+ !Date !Victim !Location !Description !Result |- |2016-10-30 |Jerry Paul |[[Mt.Parnassus]] |shot while brandishing a cutlass |5 member coroner's inquest jury verdict - death by misadventure<ref>https://www.nowgrenada.com/2018/05/jury-returns-verdict-of-no-criminal-responsibility-in-police-shooting/</ref> |- | | | | | |- | | | | | |} 43c092a9498ae4b77fc0d37d444dafeb70bf78ba 17 16 2020-12-03T02:36:45Z Ricky Thomas 29 Ricky Thomas moved page [[List of killings by law enforcement officers in Grenada]] to [[List of killings and shootings by law enforcement officers in Grenada]]: left out shooting in title wikitext text/x-wiki This is a list of people killed or shot by law enforcement officers in Grenada. The listing documents the occurrence of a death or shooting, asserting no implication or justification on the part of the person killed or the officer involved. {| class="wikitable sortable" |+ !Date !Victim !Location !Description !Result |- |2016-10-30 |Jerry Paul |[[Mt.Parnassus]] |shot while brandishing a cutlass |5 member coroner's inquest jury verdict - death by misadventure<ref>https://www.nowgrenada.com/2018/05/jury-returns-verdict-of-no-criminal-responsibility-in-police-shooting/</ref> |- | | | | | |- | | | | | |} 43c092a9498ae4b77fc0d37d444dafeb70bf78ba 19 17 2020-12-03T02:50:28Z 63.245.58.192 0 added oscar bartholomew case wikitext text/x-wiki This is a list of people killed or shot by law enforcement officers in Grenada. The listing documents the occurrence of a death or shooting, asserting no implication or justification on the part of the person killed or the officer involved. {| class="wikitable sortable" |+ !Date !Victim !Location !Description !Result |- |2016-10-30 |Jerry Paul |[[Mt.Parnassus]] |shot while brandishing a cutlass |5 member coroner's inquest jury verdict - death by misadventure<ref>https://www.nowgrenada.com/2018/05/jury-returns-verdict-of-no-criminal-responsibility-in-police-shooting/</ref> |- |2011-11 |Oscar Bartholomew |St. David Police Station<ref>https://www.thegrenadainformer.com/news/item/5219-one-officer-cleared-in-the-oscar-bartholomew-civil-matter</ref> | | |- | | | | | |} <references /> f977188a90ed31701696159f1a3abc6cb5f4caf1 List of killings by law enforcement officers in Grenada 0 14 18 2020-12-02T23:49:59Z Ricky Thomas 29 Ricky Thomas moved page [[List of killings by law enforcement officers in Grenada]] to [[List of killings and shootings by law enforcement officers in Grenada]]: left out shooting in title wikitext text/x-wiki #REDIRECT [[List of killings and shootings by law enforcement officers in Grenada]] 38d807a7a2d339419382bc24a4c495967ba315f6 Template:Div col/styles.css 10 25 41 2021-01-05T04:54:19Z en>Izno 0 remove the note as not generally necessary sanitized-css text/css /* {{pp|small=yes}} */ .div-col { margin-top: 0.3em; column-width: 30em; } .div-col-small { font-size: 90%; } .div-col-rules { column-rule: 1px solid #aaa; } /* Reset top margin for lists in div col */ .div-col dl, .div-col ol, .div-col ul { margin-top: 0; } /* Avoid elements breaking between columns See also Template:No col break */ .div-col li, .div-col dd { page-break-inside: avoid; /* Removed from CSS in favor of break-inside c. 2020 */ break-inside: avoid-column; } c6c2dc0cb2bab7a5f7b4eb938eebc5c67df087bc Template:Tl 10 54 99 2021-02-12T22:03:00Z en>Anthony Appleyard 0 Anthony Appleyard moved page [[Template:Tl]] to [[Template:Template link]]: [[Special:Permalink/1006428669|Requested]] by Buidhe at [[WP:RM/TR]]: RM closed as move wikitext text/x-wiki #REDIRECT [[Template:Template link]] {{Redirect category shell| {{R from move}} }} d6593bb3b4a866249f55d0f34b047a71fe1f1529 Template:Div col 10 18 27 2021-02-14T23:20:57Z en>Matt Fitzpatrick 0 whitelist parameter class wikitext text/x-wiki <includeonly><templatestyles src="Div col/styles.css"/><!-- --><div class="div-col {{#ifeq:{{{small|}}}|yes|div-col-small}} {{#ifeq:{{{rules|}}}|yes|div-col-rules}} {{{class|}}}" <!-- -->{{#if:{{{colwidth|}}}{{{gap|}}}{{{style|}}}|<!-- -->style="{{#if:{{{colwidth|}}}|column-width: {{{colwidth}}};}}{{#if:{{{gap|}}}|column-gap: {{{gap}}};}}{{#if:{{{style|}}}|{{{style}}}}}"<!-- -->}}><!-- -->{{#if:{{{content|}}}|{{{content}}}</div>}}<!-- Inventory how many pages use small=yes -->{{#ifeq:{{{small|}}}|yes|[[Category:Pages using div col with small parameter]]}}<!-- --></includeonly>{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using div col with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Div col]] with unknown parameter "_VALUE_"; use colwidth= to specify column size |ignoreblank=y | class | colwidth | content | gap | rules | small | style }}<noinclude> {{Documentation}} </noinclude> 6e84133dd867d6c701e7b161878cf66665bb7eb7 Template:Template link 10 50 91 2021-03-25T19:03:22Z en>Izno 0 [[Wikipedia:Templates for discussion/Log/2021 March 18#Template:Tlu]] closed as keep ([[WP:XFDC#4.0.11|XFDcloser]]) wikitext text/x-wiki &#123;&#123;[[Template:{{{1}}}|{{{1}}}]]&#125;&#125;<noinclude>{{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude> eabbec62efe3044a98ebb3ce9e7d4d43c222351d Template:Category link with count 10 20 31 2021-06-11T18:13:44Z en>GKFX 0 Support wider range of (valid) input format wikitext text/x-wiki [[:Category:{{#invoke:string|replace|1={{{1}}}|2=^:?[Cc]ategory:|3=|plain=false}}|<!-- -->{{#if:{{{name|}}}|{{{name}}}|Category:{{#invoke:string|replace|1={{{1}}}|2=^:?[Cc]ategory:|3=|plain=false}}}}<!-- -->]]&nbsp;({{PAGESINCATEGORY:{{#invoke:string|replace|1={{{1}}}|2=^:?[Cc]ategory:|3=|plain=false}}|{{{2|all}}}}})<noinclude> {{Documentation}} </noinclude> f93f1540b8c157703bd6d24ae35c35bef745981d Module:Protection banner 828 79 149 2021-07-16T11:59:29Z en>ProcrastinatingReader 0 add catonly param which hides both the banner and padlock if set to yes. all testcases pass. tested in sandbox. Scribunto text/plain -- This module implements {{pp-meta}} and its daughter templates such as -- {{pp-dispute}}, {{pp-vandalism}} and {{pp-sock}}. -- Initialise necessary modules. require('Module:No globals') local makeFileLink = require('Module:File link')._main local effectiveProtectionLevel = require('Module:Effective protection level')._main local effectiveProtectionExpiry = require('Module:Effective protection expiry')._main local yesno = require('Module:Yesno') -- Lazily initialise modules and objects we don't always need. local getArgs, makeMessageBox, lang -- Set constants. local CONFIG_MODULE = 'Module:Protection banner/config' -------------------------------------------------------------------------------- -- Helper functions -------------------------------------------------------------------------------- local function makeCategoryLink(cat, sort) if cat then return string.format( '[[%s:%s|%s]]', mw.site.namespaces[14].name, cat, sort ) end end -- Validation function for the expiry and the protection date local function validateDate(dateString, dateType) if not lang then lang = mw.language.getContentLanguage() end local success, result = pcall(lang.formatDate, lang, 'U', dateString) if success then result = tonumber(result) if result then return result end end error(string.format( 'invalid %s: %s', dateType, tostring(dateString) ), 4) end local function makeFullUrl(page, query, display) return string.format( '[%s %s]', tostring(mw.uri.fullUrl(page, query)), display ) end -- Given a directed graph formatted as node -> table of direct successors, -- get a table of all nodes reachable from a given node (though always -- including the given node). local function getReachableNodes(graph, start) local toWalk, retval = {[start] = true}, {} while true do -- Can't use pairs() since we're adding and removing things as we're iterating local k = next(toWalk) -- This always gets the "first" key if k == nil then return retval end toWalk[k] = nil retval[k] = true for _,v in ipairs(graph[k]) do if not retval[v] then toWalk[v] = true end end end end -------------------------------------------------------------------------------- -- Protection class -------------------------------------------------------------------------------- local Protection = {} Protection.__index = Protection Protection.supportedActions = { edit = true, move = true, autoreview = true, upload = true } Protection.bannerConfigFields = { 'text', 'explanation', 'tooltip', 'alt', 'link', 'image' } function Protection.new(args, cfg, title) local obj = {} obj._cfg = cfg obj.title = title or mw.title.getCurrentTitle() -- Set action if not args.action then obj.action = 'edit' elseif Protection.supportedActions[args.action] then obj.action = args.action else error(string.format( 'invalid action: %s', tostring(args.action) ), 3) end -- Set level obj.level = args.demolevel or effectiveProtectionLevel(obj.action, obj.title) if not obj.level or (obj.action == 'move' and obj.level == 'autoconfirmed') then -- Users need to be autoconfirmed to move pages anyway, so treat -- semi-move-protected pages as unprotected. obj.level = '*' end -- Set expiry local effectiveExpiry = effectiveProtectionExpiry(obj.action, obj.title) if effectiveExpiry == 'infinity' then obj.expiry = 'indef' elseif effectiveExpiry ~= 'unknown' then obj.expiry = validateDate(effectiveExpiry, 'expiry date') end -- Set reason if args[1] then obj.reason = mw.ustring.lower(args[1]) if obj.reason:find('|') then error('reasons cannot contain the pipe character ("|")', 3) end end -- Set protection date if args.date then obj.protectionDate = validateDate(args.date, 'protection date') end -- Set banner config do obj.bannerConfig = {} local configTables = {} if cfg.banners[obj.action] then configTables[#configTables + 1] = cfg.banners[obj.action][obj.reason] end if cfg.defaultBanners[obj.action] then configTables[#configTables + 1] = cfg.defaultBanners[obj.action][obj.level] configTables[#configTables + 1] = cfg.defaultBanners[obj.action].default end configTables[#configTables + 1] = cfg.masterBanner for i, field in ipairs(Protection.bannerConfigFields) do for j, t in ipairs(configTables) do if t[field] then obj.bannerConfig[field] = t[field] break end end end end return setmetatable(obj, Protection) end function Protection:isUserScript() -- Whether the page is a user JavaScript or CSS page. local title = self.title return title.namespace == 2 and ( title.contentModel == 'javascript' or title.contentModel == 'css' ) end function Protection:isProtected() return self.level ~= '*' end function Protection:shouldShowLock() -- Whether we should output a banner/padlock return self:isProtected() and not self:isUserScript() end -- Whether this page needs a protection category. Protection.shouldHaveProtectionCategory = Protection.shouldShowLock function Protection:isTemporary() return type(self.expiry) == 'number' end function Protection:makeProtectionCategory() if not self:shouldHaveProtectionCategory() then return '' end local cfg = self._cfg local title = self.title -- Get the expiry key fragment. local expiryFragment if self.expiry == 'indef' then expiryFragment = self.expiry elseif type(self.expiry) == 'number' then expiryFragment = 'temp' end -- Get the namespace key fragment. local namespaceFragment = cfg.categoryNamespaceKeys[title.namespace] if not namespaceFragment and title.namespace % 2 == 1 then namespaceFragment = 'talk' end -- Define the order that key fragments are tested in. This is done with an -- array of tables containing the value to be tested, along with its -- position in the cfg.protectionCategories table. local order = { {val = expiryFragment, keypos = 1}, {val = namespaceFragment, keypos = 2}, {val = self.reason, keypos = 3}, {val = self.level, keypos = 4}, {val = self.action, keypos = 5} } --[[ -- The old protection templates used an ad-hoc protection category system, -- with some templates prioritising namespaces in their categories, and -- others prioritising the protection reason. To emulate this in this module -- we use the config table cfg.reasonsWithNamespacePriority to set the -- reasons for which namespaces have priority over protection reason. -- If we are dealing with one of those reasons, move the namespace table to -- the end of the order table, i.e. give it highest priority. If not, the -- reason should have highest priority, so move that to the end of the table -- instead. --]] table.insert(order, table.remove(order, self.reason and cfg.reasonsWithNamespacePriority[self.reason] and 2 or 3)) --[[ -- Define the attempt order. Inactive subtables (subtables with nil "value" -- fields) are moved to the end, where they will later be given the key -- "all". This is to cut down on the number of table lookups in -- cfg.protectionCategories, which grows exponentially with the number of -- non-nil keys. We keep track of the number of active subtables with the -- noActive parameter. --]] local noActive, attemptOrder do local active, inactive = {}, {} for i, t in ipairs(order) do if t.val then active[#active + 1] = t else inactive[#inactive + 1] = t end end noActive = #active attemptOrder = active for i, t in ipairs(inactive) do attemptOrder[#attemptOrder + 1] = t end end --[[ -- Check increasingly generic key combinations until we find a match. If a -- specific category exists for the combination of key fragments we are -- given, that match will be found first. If not, we keep trying different -- key fragment combinations until we match using the key -- "all-all-all-all-all". -- -- To generate the keys, we index the key subtables using a binary matrix -- with indexes i and j. j is only calculated up to the number of active -- subtables. For example, if there were three active subtables, the matrix -- would look like this, with 0 corresponding to the key fragment "all", and -- 1 corresponding to other key fragments. -- -- j 1 2 3 -- i -- 1 1 1 1 -- 2 0 1 1 -- 3 1 0 1 -- 4 0 0 1 -- 5 1 1 0 -- 6 0 1 0 -- 7 1 0 0 -- 8 0 0 0 -- -- Values of j higher than the number of active subtables are set -- to the string "all". -- -- A key for cfg.protectionCategories is constructed for each value of i. -- The position of the value in the key is determined by the keypos field in -- each subtable. --]] local cats = cfg.protectionCategories for i = 1, 2^noActive do local key = {} for j, t in ipairs(attemptOrder) do if j > noActive then key[t.keypos] = 'all' else local quotient = i / 2 ^ (j - 1) quotient = math.ceil(quotient) if quotient % 2 == 1 then key[t.keypos] = t.val else key[t.keypos] = 'all' end end end key = table.concat(key, '|') local attempt = cats[key] if attempt then return makeCategoryLink(attempt, title.text) end end return '' end function Protection:isIncorrect() local expiry = self.expiry return not self:shouldHaveProtectionCategory() or type(expiry) == 'number' and expiry < os.time() end function Protection:isTemplateProtectedNonTemplate() local action, namespace = self.action, self.title.namespace return self.level == 'templateeditor' and ( (action ~= 'edit' and action ~= 'move') or (namespace ~= 10 and namespace ~= 828) ) end function Protection:makeCategoryLinks() local msg = self._cfg.msg local ret = {self:makeProtectionCategory()} if self:isIncorrect() then ret[#ret + 1] = makeCategoryLink( msg['tracking-category-incorrect'], self.title.text ) end if self:isTemplateProtectedNonTemplate() then ret[#ret + 1] = makeCategoryLink( msg['tracking-category-template'], self.title.text ) end return table.concat(ret) end -------------------------------------------------------------------------------- -- Blurb class -------------------------------------------------------------------------------- local Blurb = {} Blurb.__index = Blurb Blurb.bannerTextFields = { text = true, explanation = true, tooltip = true, alt = true, link = true } function Blurb.new(protectionObj, args, cfg) return setmetatable({ _cfg = cfg, _protectionObj = protectionObj, _args = args }, Blurb) end -- Private methods -- function Blurb:_formatDate(num) -- Formats a Unix timestamp into dd Month, YYYY format. lang = lang or mw.language.getContentLanguage() local success, date = pcall( lang.formatDate, lang, self._cfg.msg['expiry-date-format'] or 'j F Y', '@' .. tostring(num) ) if success then return date end end function Blurb:_getExpandedMessage(msgKey) return self:_substituteParameters(self._cfg.msg[msgKey]) end function Blurb:_substituteParameters(msg) if not self._params then local parameterFuncs = {} parameterFuncs.CURRENTVERSION = self._makeCurrentVersionParameter parameterFuncs.EDITREQUEST = self._makeEditRequestParameter parameterFuncs.EXPIRY = self._makeExpiryParameter parameterFuncs.EXPLANATIONBLURB = self._makeExplanationBlurbParameter parameterFuncs.IMAGELINK = self._makeImageLinkParameter parameterFuncs.INTROBLURB = self._makeIntroBlurbParameter parameterFuncs.INTROFRAGMENT = self._makeIntroFragmentParameter parameterFuncs.PAGETYPE = self._makePagetypeParameter parameterFuncs.PROTECTIONBLURB = self._makeProtectionBlurbParameter parameterFuncs.PROTECTIONDATE = self._makeProtectionDateParameter parameterFuncs.PROTECTIONLEVEL = self._makeProtectionLevelParameter parameterFuncs.PROTECTIONLOG = self._makeProtectionLogParameter parameterFuncs.TALKPAGE = self._makeTalkPageParameter parameterFuncs.TOOLTIPBLURB = self._makeTooltipBlurbParameter parameterFuncs.TOOLTIPFRAGMENT = self._makeTooltipFragmentParameter parameterFuncs.VANDAL = self._makeVandalTemplateParameter self._params = setmetatable({}, { __index = function (t, k) local param if parameterFuncs[k] then param = parameterFuncs[k](self) end param = param or '' t[k] = param return param end }) end msg = msg:gsub('${(%u+)}', self._params) return msg end function Blurb:_makeCurrentVersionParameter() -- A link to the page history or the move log, depending on the kind of -- protection. local pagename = self._protectionObj.title.prefixedText if self._protectionObj.action == 'move' then -- We need the move log link. return makeFullUrl( 'Special:Log', {type = 'move', page = pagename}, self:_getExpandedMessage('current-version-move-display') ) else -- We need the history link. return makeFullUrl( pagename, {action = 'history'}, self:_getExpandedMessage('current-version-edit-display') ) end end function Blurb:_makeEditRequestParameter() local mEditRequest = require('Module:Submit an edit request') local action = self._protectionObj.action local level = self._protectionObj.level -- Get the edit request type. local requestType if action == 'edit' then if level == 'autoconfirmed' then requestType = 'semi' elseif level == 'extendedconfirmed' then requestType = 'extended' elseif level == 'templateeditor' then requestType = 'template' end end requestType = requestType or 'full' -- Get the display value. local display = self:_getExpandedMessage('edit-request-display') return mEditRequest._link{type = requestType, display = display} end function Blurb:_makeExpiryParameter() local expiry = self._protectionObj.expiry if type(expiry) == 'number' then return self:_formatDate(expiry) else return expiry end end function Blurb:_makeExplanationBlurbParameter() -- Cover special cases first. if self._protectionObj.title.namespace == 8 then -- MediaWiki namespace return self:_getExpandedMessage('explanation-blurb-nounprotect') end -- Get explanation blurb table keys local action = self._protectionObj.action local level = self._protectionObj.level local talkKey = self._protectionObj.title.isTalkPage and 'talk' or 'subject' -- Find the message in the explanation blurb table and substitute any -- parameters. local explanations = self._cfg.explanationBlurbs local msg if explanations[action][level] and explanations[action][level][talkKey] then msg = explanations[action][level][talkKey] elseif explanations[action][level] and explanations[action][level].default then msg = explanations[action][level].default elseif explanations[action].default and explanations[action].default[talkKey] then msg = explanations[action].default[talkKey] elseif explanations[action].default and explanations[action].default.default then msg = explanations[action].default.default else error(string.format( 'could not find explanation blurb for action "%s", level "%s" and talk key "%s"', action, level, talkKey ), 8) end return self:_substituteParameters(msg) end function Blurb:_makeImageLinkParameter() local imageLinks = self._cfg.imageLinks local action = self._protectionObj.action local level = self._protectionObj.level local msg if imageLinks[action][level] then msg = imageLinks[action][level] elseif imageLinks[action].default then msg = imageLinks[action].default else msg = imageLinks.edit.default end return self:_substituteParameters(msg) end function Blurb:_makeIntroBlurbParameter() if self._protectionObj:isTemporary() then return self:_getExpandedMessage('intro-blurb-expiry') else return self:_getExpandedMessage('intro-blurb-noexpiry') end end function Blurb:_makeIntroFragmentParameter() if self._protectionObj:isTemporary() then return self:_getExpandedMessage('intro-fragment-expiry') else return self:_getExpandedMessage('intro-fragment-noexpiry') end end function Blurb:_makePagetypeParameter() local pagetypes = self._cfg.pagetypes return pagetypes[self._protectionObj.title.namespace] or pagetypes.default or error('no default pagetype defined', 8) end function Blurb:_makeProtectionBlurbParameter() local protectionBlurbs = self._cfg.protectionBlurbs local action = self._protectionObj.action local level = self._protectionObj.level local msg if protectionBlurbs[action][level] then msg = protectionBlurbs[action][level] elseif protectionBlurbs[action].default then msg = protectionBlurbs[action].default elseif protectionBlurbs.edit.default then msg = protectionBlurbs.edit.default else error('no protection blurb defined for protectionBlurbs.edit.default', 8) end return self:_substituteParameters(msg) end function Blurb:_makeProtectionDateParameter() local protectionDate = self._protectionObj.protectionDate if type(protectionDate) == 'number' then return self:_formatDate(protectionDate) else return protectionDate end end function Blurb:_makeProtectionLevelParameter() local protectionLevels = self._cfg.protectionLevels local action = self._protectionObj.action local level = self._protectionObj.level local msg if protectionLevels[action][level] then msg = protectionLevels[action][level] elseif protectionLevels[action].default then msg = protectionLevels[action].default elseif protectionLevels.edit.default then msg = protectionLevels.edit.default else error('no protection level defined for protectionLevels.edit.default', 8) end return self:_substituteParameters(msg) end function Blurb:_makeProtectionLogParameter() local pagename = self._protectionObj.title.prefixedText if self._protectionObj.action == 'autoreview' then -- We need the pending changes log. return makeFullUrl( 'Special:Log', {type = 'stable', page = pagename}, self:_getExpandedMessage('pc-log-display') ) else -- We need the protection log. return makeFullUrl( 'Special:Log', {type = 'protect', page = pagename}, self:_getExpandedMessage('protection-log-display') ) end end function Blurb:_makeTalkPageParameter() return string.format( '[[%s:%s#%s|%s]]', mw.site.namespaces[self._protectionObj.title.namespace].talk.name, self._protectionObj.title.text, self._args.section or 'top', self:_getExpandedMessage('talk-page-link-display') ) end function Blurb:_makeTooltipBlurbParameter() if self._protectionObj:isTemporary() then return self:_getExpandedMessage('tooltip-blurb-expiry') else return self:_getExpandedMessage('tooltip-blurb-noexpiry') end end function Blurb:_makeTooltipFragmentParameter() if self._protectionObj:isTemporary() then return self:_getExpandedMessage('tooltip-fragment-expiry') else return self:_getExpandedMessage('tooltip-fragment-noexpiry') end end function Blurb:_makeVandalTemplateParameter() return mw.getCurrentFrame():expandTemplate{ title="vandal-m", args={self._args.user or self._protectionObj.title.baseText} } end -- Public methods -- function Blurb:makeBannerText(key) -- Validate input. if not key or not Blurb.bannerTextFields[key] then error(string.format( '"%s" is not a valid banner config field', tostring(key) ), 2) end -- Generate the text. local msg = self._protectionObj.bannerConfig[key] if type(msg) == 'string' then return self:_substituteParameters(msg) elseif type(msg) == 'function' then msg = msg(self._protectionObj, self._args) if type(msg) ~= 'string' then error(string.format( 'bad output from banner config function with key "%s"' .. ' (expected string, got %s)', tostring(key), type(msg) ), 4) end return self:_substituteParameters(msg) end end -------------------------------------------------------------------------------- -- BannerTemplate class -------------------------------------------------------------------------------- local BannerTemplate = {} BannerTemplate.__index = BannerTemplate function BannerTemplate.new(protectionObj, cfg) local obj = {} obj._cfg = cfg -- Set the image filename. local imageFilename = protectionObj.bannerConfig.image if imageFilename then obj._imageFilename = imageFilename else -- If an image filename isn't specified explicitly in the banner config, -- generate it from the protection status and the namespace. local action = protectionObj.action local level = protectionObj.level local namespace = protectionObj.title.namespace local reason = protectionObj.reason -- Deal with special cases first. if ( namespace == 10 or namespace == 828 or reason and obj._cfg.indefImageReasons[reason] ) and action == 'edit' and level == 'sysop' and not protectionObj:isTemporary() then -- Fully protected modules and templates get the special red "indef" -- padlock. obj._imageFilename = obj._cfg.msg['image-filename-indef'] else -- Deal with regular protection types. local images = obj._cfg.images if images[action] then if images[action][level] then obj._imageFilename = images[action][level] elseif images[action].default then obj._imageFilename = images[action].default end end end end return setmetatable(obj, BannerTemplate) end function BannerTemplate:renderImage() local filename = self._imageFilename or self._cfg.msg['image-filename-default'] or 'Transparent.gif' return makeFileLink{ file = filename, size = (self.imageWidth or 20) .. 'px', alt = self._imageAlt, link = self._imageLink, caption = self.imageCaption } end -------------------------------------------------------------------------------- -- Banner class -------------------------------------------------------------------------------- local Banner = setmetatable({}, BannerTemplate) Banner.__index = Banner function Banner.new(protectionObj, blurbObj, cfg) local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn't need the blurb. obj.imageWidth = 40 obj.imageCaption = blurbObj:makeBannerText('alt') -- Large banners use the alt text for the tooltip. obj._reasonText = blurbObj:makeBannerText('text') obj._explanationText = blurbObj:makeBannerText('explanation') obj._page = protectionObj.title.prefixedText -- Only makes a difference in testing. return setmetatable(obj, Banner) end function Banner:__tostring() -- Renders the banner. makeMessageBox = makeMessageBox or require('Module:Message box').main local reasonText = self._reasonText or error('no reason text set', 2) local explanationText = self._explanationText local mbargs = { page = self._page, type = 'protection', image = self:renderImage(), text = string.format( "'''%s'''%s", reasonText, explanationText and '<br />' .. explanationText or '' ) } return makeMessageBox('mbox', mbargs) end -------------------------------------------------------------------------------- -- Padlock class -------------------------------------------------------------------------------- local Padlock = setmetatable({}, BannerTemplate) Padlock.__index = Padlock function Padlock.new(protectionObj, blurbObj, cfg) local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn't need the blurb. obj.imageWidth = 20 obj.imageCaption = blurbObj:makeBannerText('tooltip') obj._imageAlt = blurbObj:makeBannerText('alt') obj._imageLink = blurbObj:makeBannerText('link') obj._indicatorName = cfg.padlockIndicatorNames[protectionObj.action] or cfg.padlockIndicatorNames.default or 'pp-default' return setmetatable(obj, Padlock) end function Padlock:__tostring() local frame = mw.getCurrentFrame() -- The nowiki tag helps prevent whitespace at the top of articles. return frame:extensionTag{name = 'nowiki'} .. frame:extensionTag{ name = 'indicator', args = {name = self._indicatorName}, content = self:renderImage() } end -------------------------------------------------------------------------------- -- Exports -------------------------------------------------------------------------------- local p = {} function p._exportClasses() -- This is used for testing purposes. return { Protection = Protection, Blurb = Blurb, BannerTemplate = BannerTemplate, Banner = Banner, Padlock = Padlock, } end function p._main(args, cfg, title) args = args or {} cfg = cfg or require(CONFIG_MODULE) local protectionObj = Protection.new(args, cfg, title) local ret = {} -- If a page's edit protection is equally or more restrictive than its -- protection from some other action, then don't bother displaying anything -- for the other action (except categories). if not yesno(args.catonly) and (protectionObj.action == 'edit' or args.demolevel or not getReachableNodes( cfg.hierarchy, protectionObj.level )[effectiveProtectionLevel('edit', protectionObj.title)]) then -- Initialise the blurb object local blurbObj = Blurb.new(protectionObj, args, cfg) -- Render the banner if protectionObj:shouldShowLock() then ret[#ret + 1] = tostring( (yesno(args.small) and Padlock or Banner) .new(protectionObj, blurbObj, cfg) ) end end -- Render the categories if yesno(args.category) ~= false then ret[#ret + 1] = protectionObj:makeCategoryLinks() end return table.concat(ret) end function p.main(frame, cfg) cfg = cfg or require(CONFIG_MODULE) -- Find default args, if any. local parent = frame.getParent and frame:getParent() local defaultArgs = parent and cfg.wrappers[parent:getTitle():gsub('/sandbox$', '')] -- Find user args, and use the parent frame if we are being called from a -- wrapper template. getArgs = getArgs or require('Module:Arguments').getArgs local userArgs = getArgs(frame, { parentOnly = defaultArgs, frameOnly = not defaultArgs }) -- Build the args table. User-specified args overwrite default args. local args = {} for k, v in pairs(defaultArgs or {}) do args[k] = v end for k, v in pairs(userArgs) do args[k] = v end return p._main(args, cfg) end return p b24b049f70572e29b1a408a5a11045d65118e43c Template:Lorem ipsum/P1 10 33 57 2021-08-05T20:35:14Z en>Tbhotch 0 pp wikitext text/x-wiki {{#ifeq:{{{link|no}}}|yes|[[Lorem ipsum]]|Lorem ipsum}} dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<noinclude>{{pp-template}}</noinclude> df39f3c9a1e5a7c04c8844ba5871733dcf423d99 Template:Template parameter usage 10 53 97 2021-08-21T18:02:56Z en>SUM1 0 Added missing "lc" parameters; added optional "based" parameter to add text "based on this[/its] TemplateData" at end of template wikitext text/x-wiki {{#switch:{{{label|}}} |=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{#ifeq:{{yesno-no|{{{lc}}}}}|no|C|c}}lick here] to see a monthly parameter usage report for {{#if:{{{1|}}}|[[Template:{{ROOTPAGENAME:{{{1|}}}}}]]|this template}}{{#ifeq:{{yesno-no|{{{based}}}}}|yes|&#32;based on {{#if:{{{1|}}}|its|this}} TemplateData}}. |None|none=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{#ifeq:{{yesno-no|{{{lc}}}}}|no|P|p}}arameter usage report]{{#ifeq:{{yesno-no|{{{based}}}}}|yes|&#32;based on {{#if:{{{1|}}}|its|this}} TemplateData}} |for|For=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{#ifeq:{{yesno-no|{{{lc}}}}}|no|P|p}}arameter usage report] for {{#if:{{{1|}}}|[[Template:{{ROOTPAGENAME:{{{1|}}}}}]]|[[Template:{{ROOTPAGENAME}}]]}}{{#ifeq:{{yesno-no|{{{based}}}}}|yes|&#32;based on {{#if:{{{1|}}}|its|this}} TemplateData}}. |#default=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{{label|}}}]{{#ifeq:{{yesno-no|{{{based}}}}}|yes|&#32;based on {{#if:{{{1|}}}|its|this}} TemplateData}} }}<noinclude> {{documentation}} </noinclude> b9cdd1b2e409313904f041c38562a3d6221cc017 Template:Div col/doc 10 24 39 2021-08-25T19:59:51Z en>Elvorix 0 Undid edits by [[Special:Contributions/179.6.194.255|179.6.194.255]] ([[User talk:179.6.194.255|talk]]) to last revision by Artoria2e5: nonconstructive edits wikitext text/x-wiki {{Documentation subpage}} <!----------------------------------------------------------------------------- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE ------------------------------------------------------------------------------> {{#ifeq:{{FULLPAGENAME}}|Template:Div col|{{High-use| 269676 }}|{{#ifeq:{{FULLPAGENAME}}|Template:Div col end|{{High-use| 209292 }}}}}} {{Ombox |type=notice |text=Columns are not supported by some older browsers, most notably Internet Explorer 9 and earlier and Opera 11.0 and earlier. See {{section link|Template:Reflist#Browser support for columns}} for more information.}} {{CSS3 multiple column layout}} {{Lua|Module:Check for unknown parameters}} {{Uses TemplateStyles|Template:Div col/styles.css}} The '''div col''' (short for division columns) formats a list into columns that wrap at multiple screen resolutions responsively. It automatically breaks the available screen space into equal parts, meaning, for instance, that it is not necessary to guess how many columns to use and then figure out the dividing point(s), e.g., the halfway point to divide the list into two columns, or the one-third and two-thirds points to divide the list into three columns. ==Usage== === Basic usage === <pre> {{div col}} <!-- default width is 30em --> * a * b * c * d * e * f * g * h {{div col end}} </pre> Produces: {{Div col}} * a * b * c * d * e * f * g * h {{Div col end}} ===Parameters=== There are six parameters for this template: ; {{para|colwidth}} : Specifies the minimum width of the columns so that the number of columns is automatically based on screen width (that is, more columns will be shown on wider displays). If no value is supplied, the template uses a default of 30em. The width can be specified in any [[CSS#Length units|CSS unit of measure]], for instance, the [[Em (typography)|em]] (about the width of the capital "M" of the displayed typeface), e.g., <code>colwidth=20em</code>. ; {{para|rules|yes}} : Adds vertical lines ("rules") between the columns if set to <code>yes</code>. ; {{para|gap}} : Specifies the space between the content of adjacent columns, in any valid CSS width unit, e.g., <code>gap=2em</code>. The default spacing (set by browser) is 1em. ; {{para|class}} : An HTML class, or multiple space-delimited classes, to apply to the columns. For example, <code>class=plainlist nowrap</code>. ; {{para|style}} : [[Cascading Style Sheets|CSS styling]] to apply to the columns. ; {{para|small|yes}} : Sets font size to 90%. ; {{para|content}} : Content to apply to the columns. This parameter is effectively equivalent to {{tl|columns-list}}, which is a pass-through for this template. === Examples === ====Colwidth==== <pre> {{div col|colwidth=10em}} <!-- column width of 10em --> * a * b * c * d * e * f * g * h {{div col end}} </pre> Produces: {{Div col|colwidth=10em}} * a * b * c * d * e * f * g * h {{Div col end}} ====Rules==== <pre> {{Div col|colwidth=10em|rules=yes}} <!-- column width of 10em with rules --> * a * b * c * d * e * f * g * h {{Div col end}} </pre> Produces: {{Div col|colwidth=10em|rules=yes}} * a * b * c * d * e * f * g * h {{Div col end}} ====Gap==== <pre> {{Div col|colwidth=10em|rules=yes|gap=2em}} <!-- column width of 10em with rules and a gap of 2em --> * a * b * c * d * e * f * g * h {{Div col end}} </pre> Produces: {{Div col|colwidth=10em|rules=yes|gap=2em}} * a * b * c * d * e * f * g * h {{Div col end}} ====Small==== <pre> {{Div col|small=yes}} <!-- Small = yes --> * a * b * c * d * e * f * g * h {{Div col end}} </pre> Produces: {{Div col|small=yes}} * a * b * c * d * e * f * g * h {{Div col end}} ====Content==== <pre> {{Div col|colwidth=10em|content= <!-- content parameter doesn't need {{div col end}} --> * a * b * c * d * e * f * g * h }} </pre> Produces: {{Div col|colwidth=10em|content= * a * b * c * d * e * f * g * h }} ====Multiple parameters==== <pre> {{Div col|colwidth=10em|rules=yes|gap=2em|small=yes}} * a * b * c * d * e * f * g * h {{Div col end}} </pre> Produces: {{Div col|colwidth=10em|rules=yes|gap=2em|small=yes}} * a * b * c * d * e * f * g * h {{Div col end}} ==== Text characters without list markup ==== <pre> {{div col|colwidth=10em}} <!--Text characters without list markup --> a b c d e f g h {{div col end}} </pre> Produces {{Div col|colwidth=10em}} a b c d e f g h {{Div col end}} ==== Lorem ipsum ==== <pre> {{div col}} <!--Lorem ipsum --> {{lorem ipsum}} {{div col end}} </pre> Produces {{Div col}} {{lorem ipsum}} {{Div col end}} == Limitation == === Sub-lists === The underlying CSS system is unable to break sub-lists into columns. Note the uneven formatting below: <pre> {{Div col|colwidth=10em|rules=yes|gap=2em|style=column-count:3|content= * a * b * c ** c.d ** c.e ** c.f * g * h }} </pre> Produces: {{Div col|colwidth=10em|rules=yes|gap=2em|style=column-count:3|content= * a * b * c ** c.d ** c.e ** c.f * g * h }} Turning off the {{code|break-inside: avoid-column;}} rule appears to help.<!-- A full page refersh is needed; just F12-ing doesn't work. --> ==Tracking categories== * {{category link with count|Pages using div col with unknown parameters}} (for erroneous use of parameter names not documented here) * {{category link with count|Pages using div col with small parameter}} ==TemplateData== {{TemplateData header}} {{#switch: {{BASEPAGENAME}} |Div col=<templatedata> { "description": "Breaks a list into columns. It automatically breaks each column to an equal space, so you do not manually have to find the half way point on two columns. The list is provided by |content= or closed with {{div col end}}.", "params": { "colwidth": { "label": "Column width", "description": "Specifies the width of columns, and determines dynamically the number of columns based on screen width; more columns will be shown on wider displays.", "type": "string", "example": "30em" }, "rules": { "label": "Rules", "description": "Produces vertical rules between the columns if set to yes.", "type": "string", "example": "yes" }, "gap": { "label": "Gap size", "description": "Specifies the space between the content of adjacent columns.", "type": "string", "example": "2em" }, "class": { "label": "HTML class", "description": "Specifies any class or multiple space-delimited classes.", "type": "string", "example": "plainlist nowrap" }, "style": { "label": "CSS style", "description": "Specifies any custom styling.", "type": "string" }, "content": { "label": "Content", "description": "Specifies the content to divide into columns", "type": "content" }, "small": { "label": "Small font", "description": "Use a smaller font size (90%)", "example": "yes", "type": "string" } } } </templatedata> |Div col end=<templatedata> { "description": "Ends a multi-column list started by {{div col}}. It takes no parameters.", "params": { } } </templatedata> }} ==Redirects== {{#ifeq:{{ROOTPAGENAME}}|Div col| * {{Tlx|Col div}} * {{Tlx|Colbegin}} (but '''not''' {{Tlx|Col begin}} or {{Tlx|Col-begin}}) * {{Tlx|Cols}} * {{Tlx|Div col start}} * {{Tlx|Div col begin}} * {{Tlx|Div-col}} * {{Tlx|Palmares start}} }} {{#ifeq:{{ROOTPAGENAME}}|Div col end| *{{Tlx|Col div end}} *{{Tlx|Colend}} (but '''not''' {{Tlx|Col end}}) *{{Tlx|Div end}} *{{Tlx|Divcol-end}} *{{Tlx|Divcolend}} *{{Tlx|Divend}} *{{Tlx|End div col}} *{{Tlx|EndDivCol}} }} ==See also== {{Column-generating template families}} <includeonly>{{Sandbox other| | <!-- CATEGORIES BELOW THIS LINE, PLEASE: --> [[Category:Multi-column templates]] [[Category:Templates that add a tracking category]] <!--?:-->{{#switch:{{PAGENAME}} |Div col= |Div col end=}} }}</includeonly> 669f943fb4cb12d7993de34efde3e45cd9af8993 Template:Dagger 10 23 37 2021-08-29T12:57:19Z en>Tom.Reding 0 To proper subpage wikitext text/x-wiki [[File:Dagger-14-plain.png|alt={{if empty|{{{alt|}}}|dagger}}|link=]]<noinclude>{{Documentation}} </noinclude> 5e0a5d9443b211af401b97ba3be2f6b64c100fd4 Template:TemplateData header 10 49 89 2021-08-29T21:32:29Z en>SUM1 0 Added "based" parameter to other transclusion wikitext text/x-wiki <div class="templatedata-header">{{#if:{{{noheader|}}}|<!-- noheader: -->{{Template parameter usage|based=y}}|<!-- +header: -->This is the {{#if:{{{nolink|}}}|<!-- +header, nolink TD -->TemplateData|<!-- +header, +link [[TD]]; DEFAULT: -->[[Wikipedia:TemplateData|TemplateData]]}}<!-- e.o. #if:nolink; DEFAULT: --> for this template used by [[mw:Extension:TemplateWizard|TemplateWizard]], [[Wikipedia:VisualEditor|VisualEditor]] and other tools. {{Template parameter usage|based=y}}<!-- e.o. #if:noheader -->}} '''TemplateData for {{{1|{{BASEPAGENAME}}}}}''' </div><includeonly><!-- check parameters -->{{#invoke:Check for unknown parameters|check |unknown={{template other|1=[[Category:Pages using TemplateData header with unknown parameters|_VALUE_]]}} |template=Template:TemplateData header |1 |nolink |noheader |preview=<div class="error" style="font-weight:normal">Unknown parameter '_VALUE_' in [[Template:TemplateData header]].</div> }}<!-- -->{{template other|{{sandbox other|| [[Category:Templates using TemplateData]] }}}}</includeonly><!-- --><noinclude>{{Documentation}}</noinclude> ddfbb4ae793846b96d4c06330417fa6ed4da2adc Template:High-use 10 29 49 2021-10-22T01:54:41Z en>MusikBot II 0 Changed protection settings for "[[Template:High-use]]": [[Wikipedia:High-risk templates|High-risk template or module]]: 3343 transclusions ([[User:MusikBot II/TemplateProtector|more info]]) ([Edit=Require extended confirmed access] (indefinite) [Move=Require extended confirmed access] (indefinite)) wikitext text/x-wiki {{#invoke:High-use|main|1={{{1|}}}|2={{{2|}}}|all-pages={{{all-pages|}}}|info={{{info|}}}|demo={{{demo|}}}|form={{{form|}}}|expiry={{{expiry|}}}|system={{{system|}}}}}<noinclude> {{Documentation}} <!-- Add categories to the /doc subpage; interwiki links go to Wikidata, thank you! --> </noinclude> dc5ea36aa88cf409e3280bf65dbfc2566faffe29 Module:Navbar 828 75 141 2021-11-13T05:33:43Z en>Izno 0 remove unnecessary line Scribunto text/plain local p = {} local cfg = mw.loadData('Module:Navbar/configuration') local function get_title_arg(is_collapsible, template) local title_arg = 1 if is_collapsible then title_arg = 2 end if template then title_arg = 'template' end return title_arg end local function choose_links(template, args) -- The show table indicates the default displayed items. -- view, talk, edit, hist, move, watch -- TODO: Move to configuration. local show = {true, true, true, false, false, false} if template then show[2] = false show[3] = false local index = {t = 2, d = 2, e = 3, h = 4, m = 5, w = 6, talk = 2, edit = 3, hist = 4, move = 5, watch = 6} -- TODO: Consider removing TableTools dependency. for _, v in ipairs(require ('Module:TableTools').compressSparseArray(args)) do local num = index[v] if num then show[num] = true end end end local remove_edit_link = args.noedit if remove_edit_link then show[3] = false end return show end local function add_link(link_description, ul, is_mini, font_style) local l if link_description.url then l = {'[', '', ']'} else l = {'[[', '|', ']]'} end ul:tag('li') :addClass('nv-' .. link_description.full) :wikitext(l[1] .. link_description.link .. l[2]) :tag(is_mini and 'abbr' or 'span') :attr('title', link_description.html_title) :cssText(font_style) :wikitext(is_mini and link_description.mini or link_description.full) :done() :wikitext(l[3]) :done() end local function make_list(title_text, has_brackets, displayed_links, is_mini, font_style) local title = mw.title.new(mw.text.trim(title_text), cfg.title_namespace) if not title then error(cfg.invalid_title .. title_text) end local talkpage = title.talkPageTitle and title.talkPageTitle.fullText or '' -- TODO: Get link_descriptions and show into the configuration module. -- link_descriptions should be easier... local link_descriptions = { { ['mini'] = 'v', ['full'] = 'view', ['html_title'] = 'View this template', ['link'] = title.fullText, ['url'] = false }, { ['mini'] = 't', ['full'] = 'talk', ['html_title'] = 'Discuss this template', ['link'] = talkpage, ['url'] = false }, { ['mini'] = 'e', ['full'] = 'edit', ['html_title'] = 'Edit this template', ['link'] = title:fullUrl('action=edit'), ['url'] = true }, { ['mini'] = 'h', ['full'] = 'hist', ['html_title'] = 'History of this template', ['link'] = title:fullUrl('action=history'), ['url'] = true }, { ['mini'] = 'm', ['full'] = 'move', ['html_title'] = 'Move this template', ['link'] = mw.title.new('Special:Movepage'):fullUrl('target='..title.fullText), ['url'] = true }, { ['mini'] = 'w', ['full'] = 'watch', ['html_title'] = 'Watch this template', ['link'] = title:fullUrl('action=watch'), ['url'] = true } } local ul = mw.html.create('ul') if has_brackets then ul:addClass(cfg.classes.brackets) :cssText(font_style) end for i, _ in ipairs(displayed_links) do if displayed_links[i] then add_link(link_descriptions[i], ul, is_mini, font_style) end end return ul:done() end function p._navbar(args) -- TODO: We probably don't need both fontstyle and fontcolor... local font_style = args.fontstyle local font_color = args.fontcolor local is_collapsible = args.collapsible local is_mini = args.mini local is_plain = args.plain local collapsible_class = nil if is_collapsible then collapsible_class = cfg.classes.collapsible if not is_plain then is_mini = 1 end if font_color then font_style = (font_style or '') .. '; color: ' .. font_color .. ';' end end local navbar_style = args.style local div = mw.html.create():tag('div') div :addClass(cfg.classes.navbar) :addClass(cfg.classes.plainlinks) :addClass(cfg.classes.horizontal_list) :addClass(collapsible_class) -- we made the determination earlier :cssText(navbar_style) if is_mini then div:addClass(cfg.classes.mini) end local box_text = (args.text or cfg.box_text) .. ' ' -- the concatenated space guarantees the box text is separated if not (is_mini or is_plain) then div :tag('span') :addClass(cfg.classes.box_text) :cssText(font_style) :wikitext(box_text) end local template = args.template local displayed_links = choose_links(template, args) local has_brackets = args.brackets local title_arg = get_title_arg(is_collapsible, template) local title_text = args[title_arg] or (':' .. mw.getCurrentFrame():getParent():getTitle()) local list = make_list(title_text, has_brackets, displayed_links, is_mini, font_style) div:node(list) if is_collapsible then local title_text_class if is_mini then title_text_class = cfg.classes.collapsible_title_mini else title_text_class = cfg.classes.collapsible_title_full end div:done() :tag('div') :addClass(title_text_class) :cssText(font_style) :wikitext(args[1]) end return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = cfg.templatestyles } } .. tostring(div:done()) end function p.navbar(frame) return p._navbar(require('Module:Arguments').getArgs(frame)) end return p a5c8d3a8f8beb18984ea7f145ddbdf88a065d23e Module:Navbar/configuration 828 76 143 2021-11-13T05:39:10Z en>Izno 0 well, since I edited the other one... Scribunto text/plain return { ['templatestyles'] = 'Module:Navbar/styles.css', ['box_text'] = 'This box: ', -- default text box when not plain or mini ['title_namespace'] = 'Template', -- namespace to default to for title ['invalid_title'] = 'Invalid title ', ['classes'] = { -- set a line to nil if you don't want it ['navbar'] = 'navbar', ['plainlinks'] = 'plainlinks', -- plainlinks ['horizontal_list'] = 'hlist', -- horizontal list class ['mini'] = 'navbar-mini', -- class indicating small links in the navbar ['this_box'] = 'navbar-boxtext', ['brackets'] = 'navbar-brackets', -- 'collapsible' is the key for a class to indicate the navbar is -- setting up the collapsible element in addition to the normal -- navbar. ['collapsible'] = 'navbar-collapse', ['collapsible_title_mini'] = 'navbar-ct-mini', ['collapsible_title_full'] = 'navbar-ct-full' } } bbf3d86b48a5b40835e8e232ae9821e6bca390ec Template:Lorem ipsum/p-cond 10 34 59 2021-11-14T14:06:20Z en>GKFX 0 Reduce expansion depth wikitext text/x-wiki {{#ifeq: {{{2|{{{join|no}}}}}} | yes | | {{#switch: {{#invoke:string|sub|x{{{1|}}}|2|2}} | : | # | * = | #default = <p><!-- -->}} }}</p><noinclude>{{Documentation |content= Conditional paragraph begin. Generates a begin p-tag if needed, depending on ''prefix'' and ''join'': * nothing, in the case of joins; * nothing, where prefix metacharacters are present like (<code>*</code>, <code>#</code>, or <code>:</code>) which must sit in column 1; * a begin p-tag before the first lorem paragraph, in other cases. == Usage == {{tlc|Lorem ipsum/p-cond|''prefix''|''join''}} }}</noinclude> e2485ca32977a604ce4bbb108cdd1ab27daf6659 Template:Lorem ipsum/p-end-cond 10 35 61 2021-11-14T14:07:57Z en>GKFX 0 Reduce expansion depth wikitext text/x-wiki {{#ifeq: {{{2|{{{join|no}}}}}} | yes | | {{#switch: {{#invoke:string|sub|x{{{1|}}}|2|2}} | : | # | * = | #default = </p><!-- -->}} }}<noinclude>{{Documentation |content= Conditional paragraph end. Generates an p-tag if needed, depending on ''prefix'' and ''join'': * nothing, in the case of joins; * nothing, where prefix metacharacters are present like (<code>*</code>, <code>#</code>, or <code>:</code>) which must sit in column 1, don't acquire begin-p tags, and therefore don't need an end p-tag; * an end p-tag after the lorem paragraph emitted last, in other cases. == Usage == {{tlc|Lorem ipsum/p-end-cond|''prefix''|''join''}} }}</noinclude> 9baedbe65b1f076b223137136f33de217b8f939f Template:Main other 10 37 65 2021-12-10T16:08:06Z en>Xaosflux 0 <!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! --> wikitext text/x-wiki {{#switch: <!--If no or empty "demospace" parameter then detect namespace--> {{#if:{{{demospace|}}} | {{lc: {{{demospace}}} }} <!--Use lower case "demospace"--> | {{#ifeq:{{NAMESPACE}}|{{ns:0}} | main | other }} }} | main = {{{1|}}} | other | #default = {{{2|}}} }}<noinclude> {{documentation}} <!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! --> </noinclude> 86ad907ffeea3cc545159e00cd1f2d6433946450 Module:Lua banner 828 71 133 2021-12-10T22:30:39Z en>Fayenatic london 0 Update categories, see [[Wikipedia:Categories for discussion/Log/2021 October 31]] Scribunto text/plain -- This module implements the {{lua}} template. local yesno = require('Module:Yesno') local mList = require('Module:List') local mTableTools = require('Module:TableTools') local mMessageBox = require('Module:Message box') local p = {} function p.main(frame) local origArgs = frame:getParent().args local args = {} for k, v in pairs(origArgs) do v = v:match('^%s*(.-)%s*$') if v ~= '' then args[k] = v end end return p._main(args) end function p._main(args) local modules = mTableTools.compressSparseArray(args) local box = p.renderBox(modules) local trackingCategories = p.renderTrackingCategories(args, modules) return box .. trackingCategories end function p.renderBox(modules) local boxArgs = {} if #modules < 1 then boxArgs.text = '<strong class="error">Error: no modules specified</strong>' else local moduleLinks = {} for i, module in ipairs(modules) do moduleLinks[i] = string.format('[[:%s]]', module) local maybeSandbox = mw.title.new(module .. '/sandbox') if maybeSandbox.exists then moduleLinks[i] = moduleLinks[i] .. string.format(' ([[:%s|sandbox]])', maybeSandbox.fullText) end end local moduleList = mList.makeList('bulleted', moduleLinks) local title = mw.title.getCurrentTitle() if title.subpageText == "doc" then title = title.basePageTitle end if title.contentModel == "Scribunto" then boxArgs.text = 'This module depends on the following other modules:' .. moduleList else boxArgs.text = 'This template uses [[Wikipedia:Lua|Lua]]:\n' .. moduleList end end boxArgs.type = 'notice' boxArgs.small = true boxArgs.image = '[[File:Lua-Logo.svg|30px|alt=|link=]]' return mMessageBox.main('mbox', boxArgs) end function p.renderTrackingCategories(args, modules, titleObj) if yesno(args.nocat) then return '' end local cats = {} -- Error category if #modules < 1 then cats[#cats + 1] = 'Lua templates with errors' end -- Lua templates category titleObj = titleObj or mw.title.getCurrentTitle() local subpageBlacklist = { doc = true, sandbox = true, sandbox2 = true, testcases = true } if not subpageBlacklist[titleObj.subpageText] then local protCatName if titleObj.namespace == 10 then local category = args.category if not category then local categories = { ['Module:String'] = 'Templates based on the String Lua module', ['Module:Math'] = 'Templates based on the Math Lua module', ['Module:BaseConvert'] = 'Templates based on the BaseConvert Lua module', ['Module:Citation'] = 'Templates based on the Citation/CS1 Lua module' } categories['Module:Citation/CS1'] = categories['Module:Citation'] category = modules[1] and categories[modules[1]] category = category or 'Lua-based templates' end cats[#cats + 1] = category protCatName = "Templates using under-protected Lua modules" elseif titleObj.namespace == 828 then protCatName = "Modules depending on under-protected modules" end if not args.noprotcat and protCatName then local protLevels = { autoconfirmed = 1, extendedconfirmed = 2, templateeditor = 3, sysop = 4 } local currentProt if titleObj.id ~= 0 then -- id is 0 (page does not exist) if am previewing before creating a template. currentProt = titleObj.protectionLevels["edit"][1] end if currentProt == nil then currentProt = 0 else currentProt = protLevels[currentProt] end for i, module in ipairs(modules) do if module ~= "WP:libraryUtil" then local moduleProt = mw.title.new(module).protectionLevels["edit"][1] if moduleProt == nil then moduleProt = 0 else moduleProt = protLevels[moduleProt] end if moduleProt < currentProt then cats[#cats + 1] = protCatName break end end end end end for i, cat in ipairs(cats) do cats[i] = string.format('[[Category:%s]]', cat) end return table.concat(cats) end return p 6e3bedcc849ff22d4f702708965c39b97d7e8585 Module:Transclusion count 828 86 163 2021-12-22T22:48:57Z en>GKFX 0 Correction to tabulate function Scribunto text/plain local p = {} function p.fetch(frame) local template = nil local return_value = nil -- Use demo parameter if it exists, otherswise use current template name local namespace = mw.title.getCurrentTitle().namespace if frame.args["demo"] and frame.args["demo"] ~= "" then template = frame.args["demo"] elseif namespace == 10 then -- Template namespace template = mw.title.getCurrentTitle().text elseif namespace == 828 then -- Module namespace template = (mw.site.namespaces[828].name .. ":" .. mw.title.getCurrentTitle().text) end -- If in template or module namespace, look up count in /data if template ~= nil then namespace = mw.title.new(template, "Template").namespace if namespace == 10 or namespace == 828 then template = mw.ustring.gsub(template, "/doc$", "") -- strip /doc from end local index = mw.ustring.sub(mw.title.new(template).text,1,1) local status, data = pcall(function () return(mw.loadData('Module:Transclusion_count/data/' .. (mw.ustring.find(index, "%a") and index or "other"))) end) if status then return_value = tonumber(data[mw.ustring.gsub(template, " ", "_")]) end end end -- If database value doesn't exist, use value passed to template if return_value == nil and frame.args[1] ~= nil then local arg1=mw.ustring.match(frame.args[1], '[%d,]+') if arg1 and arg1 ~= '' then return_value = tonumber(frame:callParserFunction('formatnum', arg1, 'R')) end end return return_value end -- Tabulate this data for [[Wikipedia:Database reports/Templates transcluded on the most pages]] function p.tabulate(frame) local list = {} for i = 65, 91 do local data = mw.loadData('Module:Transclusion count/data/' .. ((i == 91) and 'other' or string.char(i))) for name, count in pairs(data) do table.insert(list, {mw.title.new(name, "Template").fullText, count}) end end table.sort(list, function(a, b) return (a[2] == b[2]) and (a[1] < b[1]) or (a[2] > b[2]) end) local lang = mw.getContentLanguage(); for i = 1, #list do list[i] = ('|-\n| %d || [[%s]] || %s\n'):format(i, list[i][1]:gsub('_', ' '), lang:formatNum(list[i][2])) end return table.concat(list) end return p 9b2940dfd623cf550f748fd5bfc25b7f69cd14cd Module:Navbar/styles.css 828 77 145 2022-01-03T23:12:15Z en>Izno 0 navbar styles that were moved to parent templates sanitized-css text/css /* {{pp|small=yes}} */ .navbar { display: inline; font-size: 88%; font-weight: normal; } .navbar-collapse { float: left; text-align: left; } .navbar-boxtext { word-spacing: 0; } .navbar ul { display: inline-block; white-space: nowrap; line-height: inherit; } .navbar-brackets::before { margin-right: -0.125em; content: '[ '; } .navbar-brackets::after { margin-left: -0.125em; content: ' ]'; } .navbar li { word-spacing: -0.125em; } .navbar a > span, .navbar a > abbr { text-decoration: inherit; } .navbar-mini abbr { font-variant: small-caps; border-bottom: none; text-decoration: none; cursor: inherit; } .navbar-ct-full { font-size: 114%; margin: 0 7em; } .navbar-ct-mini { font-size: 114%; margin: 0 4em; } 9d4056f949b4f0b159e3d40dfb1a5f01e72f9571 Template:Maybe 10 38 67 2022-01-07T13:56:48Z en>Ftrebien 0 Tweak: same chrominance as Yes wikitext text/x-wiki <noinclude>{| class="wikitable" |- |</noinclude>style="background: #FF8; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}" class="table-maybe"|{{{1|Maybe}}}<noinclude> |} {{documentation|Template:Table cell templates/doc}} </noinclude> 513f72a3cd1dbb2421df25f04c55f3064e38ab52 Template:Yes 10 57 105 2022-01-10T13:03:15Z en>Paine Ellsworth 0 m wikitext text/x-wiki <noinclude> {| class="wikitable" |- |</noinclude>style="background:#9EFF9E;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}" class="table-yes"|{{{1|Yes}}}<noinclude> |} {{documentation}} </noinclude> d235fc79a2e65678ca64fc48366ae7aaddb27d0b Template:No 10 40 71 2022-01-10T13:04:47Z en>Paine Ellsworth 0 per edit request at [[Template talk:Yes#Template-protected edit request on 7 January 2022]] - slightly lighten for accessibility wikitext text/x-wiki <noinclude>{| class="wikitable" |- |</noinclude>style="background:#FFC7C7;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}" class="table-no"|{{{1|No}}}<noinclude> |} {{documentation}} </noinclude> 653ef43ca2ef84cc0d6d8042d87932e4accdbcab Module:Documentation 828 62 115 2022-01-16T01:32:10Z en>Matt Fitzpatrick 0 sync from sandbox, add aria role and label to container Scribunto text/plain -- This module implements {{documentation}}. -- Get required modules. local getArgs = require('Module:Arguments').getArgs -- Get the config table. local cfg = mw.loadData('Module:Documentation/config') local p = {} -- Often-used functions. local ugsub = mw.ustring.gsub ---------------------------------------------------------------------------- -- Helper functions -- -- These are defined as local functions, but are made available in the p -- table for testing purposes. ---------------------------------------------------------------------------- local function message(cfgKey, valArray, expectType) --[[ -- Gets a message from the cfg table and formats it if appropriate. -- The function raises an error if the value from the cfg table is not -- of the type expectType. The default type for expectType is 'string'. -- If the table valArray is present, strings such as $1, $2 etc. in the -- message are substituted with values from the table keys [1], [2] etc. -- For example, if the message "foo-message" had the value 'Foo $2 bar $1.', -- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz." --]] local msg = cfg[cfgKey] expectType = expectType or 'string' if type(msg) ~= expectType then error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2) end if not valArray then return msg end local function getMessageVal(match) match = tonumber(match) return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4) end return ugsub(msg, '$([1-9][0-9]*)', getMessageVal) end p.message = message local function makeWikilink(page, display) if display then return mw.ustring.format('[[%s|%s]]', page, display) else return mw.ustring.format('[[%s]]', page) end end p.makeWikilink = makeWikilink local function makeCategoryLink(cat, sort) local catns = mw.site.namespaces[14].name return makeWikilink(catns .. ':' .. cat, sort) end p.makeCategoryLink = makeCategoryLink local function makeUrlLink(url, display) return mw.ustring.format('[%s %s]', url, display) end p.makeUrlLink = makeUrlLink local function makeToolbar(...) local ret = {} local lim = select('#', ...) if lim < 1 then return nil end for i = 1, lim do ret[#ret + 1] = select(i, ...) end -- 'documentation-toolbar' return '<span class="' .. message('toolbar-class') .. '">(' .. table.concat(ret, ' &#124; ') .. ')</span>' end p.makeToolbar = makeToolbar ---------------------------------------------------------------------------- -- Argument processing ---------------------------------------------------------------------------- local function makeInvokeFunc(funcName) return function (frame) local args = getArgs(frame, { valueFunc = function (key, value) if type(value) == 'string' then value = value:match('^%s*(.-)%s*$') -- Remove whitespace. if key == 'heading' or value ~= '' then return value else return nil end else return value end end }) return p[funcName](args) end end ---------------------------------------------------------------------------- -- Entry points ---------------------------------------------------------------------------- function p.nonexistent(frame) if mw.title.getCurrentTitle().subpageText == 'testcases' then return frame:expandTemplate{title = 'module test cases notice'} else return p.main(frame) end end p.main = makeInvokeFunc('_main') function p._main(args) --[[ -- This function defines logic flow for the module. -- @args - table of arguments passed by the user --]] local env = p.getEnvironment(args) local root = mw.html.create() root :wikitext(p._getModuleWikitext(args, env)) :wikitext(p.protectionTemplate(env)) :wikitext(p.sandboxNotice(args, env)) :tag('div') -- 'documentation-container' :addClass(message('container')) :attr('role', 'complementary') :attr('aria-labelledby', args.heading ~= '' and 'documentation-heading' or nil) :attr('aria-label', args.heading == '' and 'Documentation' or nil) :newline() :tag('div') -- 'documentation' :addClass(message('main-div-classes')) :newline() :wikitext(p._startBox(args, env)) :wikitext(p._content(args, env)) :tag('div') -- 'documentation-clear' :addClass(message('clear')) :done() :newline() :done() :wikitext(p._endBox(args, env)) :done() :wikitext(p.addTrackingCategories(env)) -- 'Module:Documentation/styles.css' return mw.getCurrentFrame():extensionTag ( 'templatestyles', '', {src=cfg['templatestyles'] }) .. tostring(root) end ---------------------------------------------------------------------------- -- Environment settings ---------------------------------------------------------------------------- function p.getEnvironment(args) --[[ -- Returns a table with information about the environment, including title -- objects and other namespace- or path-related data. -- @args - table of arguments passed by the user -- -- Title objects include: -- env.title - the page we are making documentation for (usually the current title) -- env.templateTitle - the template (or module, file, etc.) -- env.docTitle - the /doc subpage. -- env.sandboxTitle - the /sandbox subpage. -- env.testcasesTitle - the /testcases subpage. -- -- Data includes: -- env.protectionLevels - the protection levels table of the title object. -- env.subjectSpace - the number of the title's subject namespace. -- env.docSpace - the number of the namespace the title puts its documentation in. -- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace. -- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template. -- -- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value -- returned will be nil. --]] local env, envFuncs = {}, {} -- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value -- returned by that function is memoized in the env table so that we don't call any of the functions -- more than once. (Nils won't be memoized.) setmetatable(env, { __index = function (t, key) local envFunc = envFuncs[key] if envFunc then local success, val = pcall(envFunc) if success then env[key] = val -- Memoise the value. return val end end return nil end }) function envFuncs.title() -- The title object for the current page, or a test page passed with args.page. local title local titleArg = args.page if titleArg then title = mw.title.new(titleArg) else title = mw.title.getCurrentTitle() end return title end function envFuncs.templateTitle() --[[ -- The template (or module, etc.) title object. -- Messages: -- 'sandbox-subpage' --> 'sandbox' -- 'testcases-subpage' --> 'testcases' --]] local subjectSpace = env.subjectSpace local title = env.title local subpage = title.subpageText if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then return mw.title.makeTitle(subjectSpace, title.baseText) else return mw.title.makeTitle(subjectSpace, title.text) end end function envFuncs.docTitle() --[[ -- Title object of the /doc subpage. -- Messages: -- 'doc-subpage' --> 'doc' --]] local title = env.title local docname = args[1] -- User-specified doc page. local docpage if docname then docpage = docname else docpage = env.docpageBase .. '/' .. message('doc-subpage') end return mw.title.new(docpage) end function envFuncs.sandboxTitle() --[[ -- Title object for the /sandbox subpage. -- Messages: -- 'sandbox-subpage' --> 'sandbox' --]] return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage')) end function envFuncs.testcasesTitle() --[[ -- Title object for the /testcases subpage. -- Messages: -- 'testcases-subpage' --> 'testcases' --]] return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage')) end function envFuncs.protectionLevels() -- The protection levels table of the title object. return env.title.protectionLevels end function envFuncs.subjectSpace() -- The subject namespace number. return mw.site.namespaces[env.title.namespace].subject.id end function envFuncs.docSpace() -- The documentation namespace number. For most namespaces this is the -- same as the subject namespace. However, pages in the Article, File, -- MediaWiki or Category namespaces must have their /doc, /sandbox and -- /testcases pages in talk space. local subjectSpace = env.subjectSpace if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then return subjectSpace + 1 else return subjectSpace end end function envFuncs.docpageBase() -- The base page of the /doc, /sandbox, and /testcases subpages. -- For some namespaces this is the talk page, rather than the template page. local templateTitle = env.templateTitle local docSpace = env.docSpace local docSpaceText = mw.site.namespaces[docSpace].name -- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon. return docSpaceText .. ':' .. templateTitle.text end function envFuncs.compareUrl() -- Diff link between the sandbox and the main template using [[Special:ComparePages]]. local templateTitle = env.templateTitle local sandboxTitle = env.sandboxTitle if templateTitle.exists and sandboxTitle.exists then local compareUrl = mw.uri.fullUrl( 'Special:ComparePages', { page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText} ) return tostring(compareUrl) else return nil end end return env end ---------------------------------------------------------------------------- -- Auxiliary templates ---------------------------------------------------------------------------- p.getModuleWikitext = makeInvokeFunc('_getModuleWikitext') function p._getModuleWikitext(args, env) local currentTitle = mw.title.getCurrentTitle() if currentTitle.contentModel ~= 'Scribunto' then return end pcall(require, currentTitle.prefixedText) -- if it fails, we don't care local moduleWikitext = package.loaded["Module:Module wikitext"] if moduleWikitext then return moduleWikitext.main() end end function p.sandboxNotice(args, env) --[=[ -- Generates a sandbox notice for display above sandbox pages. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'sandbox-notice-image' --> '[[Image:Sandbox.svg|50px|alt=|link=]]' -- 'sandbox-notice-blurb' --> 'This is the $1 for $2.' -- 'sandbox-notice-diff-blurb' --> 'This is the $1 for $2 ($3).' -- 'sandbox-notice-pagetype-template' --> '[[Wikipedia:Template test cases|template sandbox]] page' -- 'sandbox-notice-pagetype-module' --> '[[Wikipedia:Template test cases|module sandbox]] page' -- 'sandbox-notice-pagetype-other' --> 'sandbox page' -- 'sandbox-notice-compare-link-display' --> 'diff' -- 'sandbox-notice-testcases-blurb' --> 'See also the companion subpage for $1.' -- 'sandbox-notice-testcases-link-display' --> 'test cases' -- 'sandbox-category' --> 'Template sandboxes' --]=] local title = env.title local sandboxTitle = env.sandboxTitle local templateTitle = env.templateTitle local subjectSpace = env.subjectSpace if not (subjectSpace and title and sandboxTitle and templateTitle and mw.title.equals(title, sandboxTitle)) then return nil end -- Build the table of arguments to pass to {{ombox}}. We need just two fields, "image" and "text". local omargs = {} omargs.image = message('sandbox-notice-image') -- Get the text. We start with the opening blurb, which is something like -- "This is the template sandbox for [[Template:Foo]] (diff)." local text = '' local pagetype if subjectSpace == 10 then pagetype = message('sandbox-notice-pagetype-template') elseif subjectSpace == 828 then pagetype = message('sandbox-notice-pagetype-module') else pagetype = message('sandbox-notice-pagetype-other') end local templateLink = makeWikilink(templateTitle.prefixedText) local compareUrl = env.compareUrl if compareUrl then local compareDisplay = message('sandbox-notice-compare-link-display') local compareLink = makeUrlLink(compareUrl, compareDisplay) text = text .. message('sandbox-notice-diff-blurb', {pagetype, templateLink, compareLink}) else text = text .. message('sandbox-notice-blurb', {pagetype, templateLink}) end -- Get the test cases page blurb if the page exists. This is something like -- "See also the companion subpage for [[Template:Foo/testcases|test cases]]." local testcasesTitle = env.testcasesTitle if testcasesTitle and testcasesTitle.exists then if testcasesTitle.contentModel == "Scribunto" then local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display') local testcasesRunLinkDisplay = message('sandbox-notice-testcases-run-link-display') local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay) local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay) text = text .. '<br />' .. message('sandbox-notice-testcases-run-blurb', {testcasesLink, testcasesRunLink}) else local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display') local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay) text = text .. '<br />' .. message('sandbox-notice-testcases-blurb', {testcasesLink}) end end -- Add the sandbox to the sandbox category. omargs.text = text .. makeCategoryLink(message('sandbox-category')) -- 'documentation-clear' return '<div class="' .. message('clear') .. '"></div>' .. require('Module:Message box').main('ombox', omargs) end function p.protectionTemplate(env) -- Generates the padlock icon in the top right. -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'protection-template' --> 'pp-template' -- 'protection-template-args' --> {docusage = 'yes'} local protectionLevels = env.protectionLevels if not protectionLevels then return nil end local editProt = protectionLevels.edit and protectionLevels.edit[1] local moveProt = protectionLevels.move and protectionLevels.move[1] if editProt then -- The page is edit-protected. return require('Module:Protection banner')._main{ message('protection-reason-edit'), small = true } elseif moveProt and moveProt ~= 'autoconfirmed' then -- The page is move-protected but not edit-protected. Exclude move -- protection with the level "autoconfirmed", as this is equivalent to -- no move protection at all. return require('Module:Protection banner')._main{ action = 'move', small = true } else return nil end end ---------------------------------------------------------------------------- -- Start box ---------------------------------------------------------------------------- p.startBox = makeInvokeFunc('_startBox') function p._startBox(args, env) --[[ -- This function generates the start box. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make -- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox -- which generate the box HTML. --]] env = env or p.getEnvironment(args) local links local content = args.content if not content or args[1] then -- No need to include the links if the documentation is on the template page itself. local linksData = p.makeStartBoxLinksData(args, env) if linksData then links = p.renderStartBoxLinks(linksData) end end -- Generate the start box html. local data = p.makeStartBoxData(args, env, links) if data then return p.renderStartBox(data) else -- User specified no heading. return nil end end function p.makeStartBoxLinksData(args, env) --[[ -- Does initial processing of data to make the [view] [edit] [history] [purge] links. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'view-link-display' --> 'view' -- 'edit-link-display' --> 'edit' -- 'history-link-display' --> 'history' -- 'purge-link-display' --> 'purge' -- 'module-preload' --> 'Template:Documentation/preload-module-doc' -- 'docpage-preload' --> 'Template:Documentation/preload' -- 'create-link-display' --> 'create' --]] local subjectSpace = env.subjectSpace local title = env.title local docTitle = env.docTitle if not title or not docTitle then return nil end if docTitle.isRedirect then docTitle = docTitle.redirectTarget end local data = {} data.title = title data.docTitle = docTitle -- View, display, edit, and purge links if /doc exists. data.viewLinkDisplay = message('view-link-display') data.editLinkDisplay = message('edit-link-display') data.historyLinkDisplay = message('history-link-display') data.purgeLinkDisplay = message('purge-link-display') -- Create link if /doc doesn't exist. local preload = args.preload if not preload then if subjectSpace == 828 then -- Module namespace preload = message('module-preload') else preload = message('docpage-preload') end end data.preload = preload data.createLinkDisplay = message('create-link-display') return data end function p.renderStartBoxLinks(data) --[[ -- Generates the [view][edit][history][purge] or [create][purge] links from the data table. -- @data - a table of data generated by p.makeStartBoxLinksData --]] local function escapeBrackets(s) -- Escapes square brackets with HTML entities. s = s:gsub('%[', '&#91;') -- Replace square brackets with HTML entities. s = s:gsub('%]', '&#93;') return s end local ret local docTitle = data.docTitle local title = data.title local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay) if docTitle.exists then local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay) local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay) local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay) ret = '[%s] [%s] [%s] [%s]' ret = escapeBrackets(ret) ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink) else local createLink = makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay) ret = '[%s] [%s]' ret = escapeBrackets(ret) ret = mw.ustring.format(ret, createLink, purgeLink) end return ret end function p.makeStartBoxData(args, env, links) --[=[ -- Does initial processing of data to pass to the start-box render function, p.renderStartBox. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error. -- -- Messages: -- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]' -- 'template-namespace-heading' --> 'Template documentation' -- 'module-namespace-heading' --> 'Module documentation' -- 'file-namespace-heading' --> 'Summary' -- 'other-namespaces-heading' --> 'Documentation' -- 'testcases-create-link-display' --> 'create' --]=] local subjectSpace = env.subjectSpace if not subjectSpace then -- Default to an "other namespaces" namespace, so that we get at least some output -- if an error occurs. subjectSpace = 2 end local data = {} -- Heading local heading = args.heading -- Blank values are not removed. if heading == '' then -- Don't display the start box if the heading arg is defined but blank. return nil end if heading then data.heading = heading elseif subjectSpace == 10 then -- Template namespace data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading') elseif subjectSpace == 828 then -- Module namespace data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading') elseif subjectSpace == 6 then -- File namespace data.heading = message('file-namespace-heading') else data.heading = message('other-namespaces-heading') end -- Heading CSS local headingStyle = args['heading-style'] if headingStyle then data.headingStyleText = headingStyle else -- 'documentation-heading' data.headingClass = message('main-div-heading-class') end -- Data for the [view][edit][history][purge] or [create] links. if links then -- 'mw-editsection-like plainlinks' data.linksClass = message('start-box-link-classes') data.links = links end return data end function p.renderStartBox(data) -- Renders the start box html. -- @data - a table of data generated by p.makeStartBoxData. local sbox = mw.html.create('div') sbox -- 'documentation-startbox' :addClass(message('start-box-class')) :newline() :tag('span') :addClass(data.headingClass) :attr('id', 'documentation-heading') :cssText(data.headingStyleText) :wikitext(data.heading) local links = data.links if links then sbox:tag('span') :addClass(data.linksClass) :attr('id', data.linksId) :wikitext(links) end return tostring(sbox) end ---------------------------------------------------------------------------- -- Documentation content ---------------------------------------------------------------------------- p.content = makeInvokeFunc('_content') function p._content(args, env) -- Displays the documentation contents -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment env = env or p.getEnvironment(args) local docTitle = env.docTitle local content = args.content if not content and docTitle and docTitle.exists then content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText} end -- The line breaks below are necessary so that "=== Headings ===" at the start and end -- of docs are interpreted correctly. return '\n' .. (content or '') .. '\n' end p.contentTitle = makeInvokeFunc('_contentTitle') function p._contentTitle(args, env) env = env or p.getEnvironment(args) local docTitle = env.docTitle if not args.content and docTitle and docTitle.exists then return docTitle.prefixedText else return '' end end ---------------------------------------------------------------------------- -- End box ---------------------------------------------------------------------------- p.endBox = makeInvokeFunc('_endBox') function p._endBox(args, env) --[=[ -- This function generates the end box (also known as the link box). -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- --]=] -- Get environment data. env = env or p.getEnvironment(args) local subjectSpace = env.subjectSpace local docTitle = env.docTitle if not subjectSpace or not docTitle then return nil end -- Check whether we should output the end box at all. Add the end -- box by default if the documentation exists or if we are in the -- user, module or template namespaces. local linkBox = args['link box'] if linkBox == 'off' or not ( docTitle.exists or subjectSpace == 2 or subjectSpace == 828 or subjectSpace == 10 ) then return nil end -- Assemble the link box. local text = '' if linkBox then text = text .. linkBox else text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]." if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then -- We are in the user, template or module namespaces. -- Add sandbox and testcases links. -- "Editors can experiment in this template's sandbox and testcases pages." text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />' if not args.content and not args[1] then -- "Please add categories to the /doc subpage." -- Don't show this message with inline docs or with an explicitly specified doc page, -- as then it is unclear where to add the categories. text = text .. (p.makeCategoriesBlurb(args, env) or '') end text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template" end end local box = mw.html.create('div') -- 'documentation-metadata' box:attr('role', 'note') :addClass(message('end-box-class')) -- 'plainlinks' :addClass(message('end-box-plainlinks')) :wikitext(text) :done() return '\n' .. tostring(box) end function p.makeDocPageBlurb(args, env) --[=[ -- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)". -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'edit-link-display' --> 'edit' -- 'history-link-display' --> 'history' -- 'transcluded-from-blurb' --> -- 'The above [[Wikipedia:Template documentation|documentation]] -- is [[Help:Transclusion|transcluded]] from $1.' -- 'module-preload' --> 'Template:Documentation/preload-module-doc' -- 'create-link-display' --> 'create' -- 'create-module-doc-blurb' --> -- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].' --]=] local docTitle = env.docTitle if not docTitle then return nil end local ret if docTitle.exists then -- /doc exists; link to it. local docLink = makeWikilink(docTitle.prefixedText) local editUrl = docTitle:fullUrl{action = 'edit'} local editDisplay = message('edit-link-display') local editLink = makeUrlLink(editUrl, editDisplay) local historyUrl = docTitle:fullUrl{action = 'history'} local historyDisplay = message('history-link-display') local historyLink = makeUrlLink(historyUrl, historyDisplay) ret = message('transcluded-from-blurb', {docLink}) .. ' ' .. makeToolbar(editLink, historyLink) .. '<br />' elseif env.subjectSpace == 828 then -- /doc does not exist; ask to create it. local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')} local createDisplay = message('create-link-display') local createLink = makeUrlLink(createUrl, createDisplay) ret = message('create-module-doc-blurb', {createLink}) .. '<br />' end return ret end function p.makeExperimentBlurb(args, env) --[[ -- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages." -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'sandbox-link-display' --> 'sandbox' -- 'sandbox-edit-link-display' --> 'edit' -- 'compare-link-display' --> 'diff' -- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox' -- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox' -- 'sandbox-create-link-display' --> 'create' -- 'mirror-edit-summary' --> 'Create sandbox version of $1' -- 'mirror-link-display' --> 'mirror' -- 'mirror-link-preload' --> 'Template:Documentation/mirror' -- 'sandbox-link-display' --> 'sandbox' -- 'testcases-link-display' --> 'testcases' -- 'testcases-edit-link-display'--> 'edit' -- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox' -- 'testcases-create-link-display' --> 'create' -- 'testcases-link-display' --> 'testcases' -- 'testcases-edit-link-display' --> 'edit' -- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases' -- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases' -- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.' -- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.' --]] local subjectSpace = env.subjectSpace local templateTitle = env.templateTitle local sandboxTitle = env.sandboxTitle local testcasesTitle = env.testcasesTitle local templatePage = templateTitle.prefixedText if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then return nil end -- Make links. local sandboxLinks, testcasesLinks if sandboxTitle.exists then local sandboxPage = sandboxTitle.prefixedText local sandboxDisplay = message('sandbox-link-display') local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay) local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'} local sandboxEditDisplay = message('sandbox-edit-link-display') local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay) local compareUrl = env.compareUrl local compareLink if compareUrl then local compareDisplay = message('compare-link-display') compareLink = makeUrlLink(compareUrl, compareDisplay) end sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink) else local sandboxPreload if subjectSpace == 828 then sandboxPreload = message('module-sandbox-preload') else sandboxPreload = message('template-sandbox-preload') end local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload} local sandboxCreateDisplay = message('sandbox-create-link-display') local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay) local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)}) local mirrorPreload = message('mirror-link-preload') local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary} if subjectSpace == 828 then mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary} end local mirrorDisplay = message('mirror-link-display') local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay) sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink) end if testcasesTitle.exists then local testcasesPage = testcasesTitle.prefixedText local testcasesDisplay = message('testcases-link-display') local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay) local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'} local testcasesEditDisplay = message('testcases-edit-link-display') local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay) -- for Modules, add testcases run link if exists if testcasesTitle.contentModel == "Scribunto" and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then local testcasesRunLinkDisplay = message('testcases-run-link-display') local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay) testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink) else testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink) end else local testcasesPreload if subjectSpace == 828 then testcasesPreload = message('module-testcases-preload') else testcasesPreload = message('template-testcases-preload') end local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload} local testcasesCreateDisplay = message('testcases-create-link-display') local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay) testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink) end local messageName if subjectSpace == 828 then messageName = 'experiment-blurb-module' else messageName = 'experiment-blurb-template' end return message(messageName, {sandboxLinks, testcasesLinks}) end function p.makeCategoriesBlurb(args, env) --[[ -- Generates the text "Please add categories to the /doc subpage." -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'doc-link-display' --> '/doc' -- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.' --]] local docTitle = env.docTitle if not docTitle then return nil end local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display')) return message('add-categories-blurb', {docPathLink}) end function p.makeSubpagesBlurb(args, env) --[[ -- Generates the "Subpages of this template" link. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'template-pagetype' --> 'template' -- 'module-pagetype' --> 'module' -- 'default-pagetype' --> 'page' -- 'subpages-link-display' --> 'Subpages of this $1' --]] local subjectSpace = env.subjectSpace local templateTitle = env.templateTitle if not subjectSpace or not templateTitle then return nil end local pagetype if subjectSpace == 10 then pagetype = message('template-pagetype') elseif subjectSpace == 828 then pagetype = message('module-pagetype') else pagetype = message('default-pagetype') end local subpagesLink = makeWikilink( 'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/', message('subpages-link-display', {pagetype}) ) return message('subpages-blurb', {subpagesLink}) end ---------------------------------------------------------------------------- -- Tracking categories ---------------------------------------------------------------------------- function p.addTrackingCategories(env) --[[ -- Check if {{documentation}} is transcluded on a /doc or /testcases page. -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'display-strange-usage-category' --> true -- 'doc-subpage' --> 'doc' -- 'testcases-subpage' --> 'testcases' -- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage' -- -- /testcases pages in the module namespace are not categorised, as they may have -- {{documentation}} transcluded automatically. --]] local title = env.title local subjectSpace = env.subjectSpace if not title or not subjectSpace then return nil end local subpage = title.subpageText local ret = '' if message('display-strange-usage-category', nil, 'boolean') and ( subpage == message('doc-subpage') or subjectSpace ~= 828 and subpage == message('testcases-subpage') ) then ret = ret .. makeCategoryLink(message('strange-usage-category')) end return ret end return p 95ab9de543475e37250dc94558a5508a3c7c3dfc Template:Small 10 45 81 2022-01-17T03:43:07Z en>Explicit 0 [[Wikipedia:Templates for discussion/Log/2022 January 10#Template:Smaller]] closed as merge ([[WP:XFDC#4.0.12|XFDcloser]]) wikitext text/x-wiki <span style="font-size:85%;">{{{1}}}</span><includeonly>{{SAFESUBST:#if:{{{1|}}}||[[Category:Pages using small with an empty input parameter]]}}</includeonly><noinclude> {{Documentation}}<!--Categories and interwikis go in the /doc sub-page.--> </noinclude> 76d3535c2917cc3bfb1b032506073faa15e1a480 Template:Smaller 10 46 83 2022-01-18T10:48:21Z en>Primefac 0 merge complete wikitext text/x-wiki #REDIRECT [[Template:Small]] {{r from merge}} 2209ecdc4a987eb3d73f648941a3daaed04cd5d5 Module:Documentation/config 828 63 117 2022-01-25T23:46:11Z en>Ianblair23 0 link Scribunto text/plain ---------------------------------------------------------------------------------------------------- -- -- Configuration for Module:Documentation -- -- Here you can set the values of the parameters and messages used in Module:Documentation to -- localise it to your wiki and your language. Unless specified otherwise, values given here -- should be string values. ---------------------------------------------------------------------------------------------------- local cfg = {} -- Do not edit this line. ---------------------------------------------------------------------------------------------------- -- Protection template configuration ---------------------------------------------------------------------------------------------------- -- cfg['protection-reason-edit'] -- The protection reason for edit-protected templates to pass to -- [[Module:Protection banner]]. cfg['protection-reason-edit'] = 'template' --[[ ---------------------------------------------------------------------------------------------------- -- Sandbox notice configuration -- -- On sandbox pages the module can display a template notifying users that the current page is a -- sandbox, and the location of test cases pages, etc. The module decides whether the page is a -- sandbox or not based on the value of cfg['sandbox-subpage']. The following settings configure the -- messages that the notices contains. ---------------------------------------------------------------------------------------------------- --]] -- cfg['sandbox-notice-image'] -- The image displayed in the sandbox notice. cfg['sandbox-notice-image'] = '[[File:Sandbox.svg|50px|alt=|link=]]' --[[ -- cfg['sandbox-notice-pagetype-template'] -- cfg['sandbox-notice-pagetype-module'] -- cfg['sandbox-notice-pagetype-other'] -- The page type of the sandbox page. The message that is displayed depends on the current subject -- namespace. This message is used in either cfg['sandbox-notice-blurb'] or -- cfg['sandbox-notice-diff-blurb']. --]] cfg['sandbox-notice-pagetype-template'] = '[[Wikipedia:Template test cases|template sandbox]] page' cfg['sandbox-notice-pagetype-module'] = '[[Wikipedia:Template test cases|module sandbox]] page' cfg['sandbox-notice-pagetype-other'] = 'sandbox page' --[[ -- cfg['sandbox-notice-blurb'] -- cfg['sandbox-notice-diff-blurb'] -- cfg['sandbox-notice-diff-display'] -- Either cfg['sandbox-notice-blurb'] or cfg['sandbox-notice-diff-blurb'] is the opening sentence -- of the sandbox notice. The latter has a diff link, but the former does not. $1 is the page -- type, which is either cfg['sandbox-notice-pagetype-template'], -- cfg['sandbox-notice-pagetype-module'] or cfg['sandbox-notice-pagetype-other'] depending what -- namespace we are in. $2 is a link to the main template page, and $3 is a diff link between -- the sandbox and the main template. The display value of the diff link is set by -- cfg['sandbox-notice-compare-link-display']. --]] cfg['sandbox-notice-blurb'] = 'This is the $1 for $2.' cfg['sandbox-notice-diff-blurb'] = 'This is the $1 for $2 ($3).' cfg['sandbox-notice-compare-link-display'] = 'diff' --[[ -- cfg['sandbox-notice-testcases-blurb'] -- cfg['sandbox-notice-testcases-link-display'] -- cfg['sandbox-notice-testcases-run-blurb'] -- cfg['sandbox-notice-testcases-run-link-display'] -- cfg['sandbox-notice-testcases-blurb'] is a sentence notifying the user that there is a test cases page -- corresponding to this sandbox that they can edit. $1 is a link to the test cases page. -- cfg['sandbox-notice-testcases-link-display'] is the display value for that link. -- cfg['sandbox-notice-testcases-run-blurb'] is a sentence notifying the user that there is a test cases page -- corresponding to this sandbox that they can edit, along with a link to run it. $1 is a link to the test -- cases page, and $2 is a link to the page to run it. -- cfg['sandbox-notice-testcases-run-link-display'] is the display value for the link to run the test -- cases. --]] cfg['sandbox-notice-testcases-blurb'] = 'See also the companion subpage for $1.' cfg['sandbox-notice-testcases-link-display'] = 'test cases' cfg['sandbox-notice-testcases-run-blurb'] = 'See also the companion subpage for $1 ($2).' cfg['sandbox-notice-testcases-run-link-display'] = 'run' -- cfg['sandbox-category'] -- A category to add to all template sandboxes. cfg['sandbox-category'] = 'Template sandboxes' ---------------------------------------------------------------------------------------------------- -- Start box configuration ---------------------------------------------------------------------------------------------------- -- cfg['documentation-icon-wikitext'] -- The wikitext for the icon shown at the top of the template. cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]' -- cfg['template-namespace-heading'] -- The heading shown in the template namespace. cfg['template-namespace-heading'] = 'Template documentation' -- cfg['module-namespace-heading'] -- The heading shown in the module namespace. cfg['module-namespace-heading'] = 'Module documentation' -- cfg['file-namespace-heading'] -- The heading shown in the file namespace. cfg['file-namespace-heading'] = 'Summary' -- cfg['other-namespaces-heading'] -- The heading shown in other namespaces. cfg['other-namespaces-heading'] = 'Documentation' -- cfg['view-link-display'] -- The text to display for "view" links. cfg['view-link-display'] = 'view' -- cfg['edit-link-display'] -- The text to display for "edit" links. cfg['edit-link-display'] = 'edit' -- cfg['history-link-display'] -- The text to display for "history" links. cfg['history-link-display'] = 'history' -- cfg['purge-link-display'] -- The text to display for "purge" links. cfg['purge-link-display'] = 'purge' -- cfg['create-link-display'] -- The text to display for "create" links. cfg['create-link-display'] = 'create' ---------------------------------------------------------------------------------------------------- -- Link box (end box) configuration ---------------------------------------------------------------------------------------------------- -- cfg['transcluded-from-blurb'] -- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page. cfg['transcluded-from-blurb'] = 'The above [[Wikipedia:Template documentation|documentation]] is [[Help:Transclusion|transcluded]] from $1.' --[[ -- cfg['create-module-doc-blurb'] -- Notice displayed in the module namespace when the documentation subpage does not exist. -- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the -- display cfg['create-link-display']. --]] cfg['create-module-doc-blurb'] = 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].' ---------------------------------------------------------------------------------------------------- -- Experiment blurb configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['experiment-blurb-template'] -- cfg['experiment-blurb-module'] -- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages. -- It is only shown in the template and module namespaces. With the default English settings, it -- might look like this: -- -- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages. -- -- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links. -- -- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending -- on what namespace we are in. -- -- Parameters: -- -- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format: -- -- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display']) -- -- If the sandbox doesn't exist, it is in the format: -- -- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display']) -- -- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload'] -- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display'] -- loads a default edit summary of cfg['mirror-edit-summary']. -- -- $2 is a link to the test cases page. If the test cases page exists, it is in the following format: -- -- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display']) -- -- If the test cases page doesn't exist, it is in the format: -- -- cfg['testcases-link-display'] (cfg['testcases-create-link-display']) -- -- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the -- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current -- namespace. --]] cfg['experiment-blurb-template'] = "Editors can experiment in this template's $1 and $2 pages." cfg['experiment-blurb-module'] = "Editors can experiment in this module's $1 and $2 pages." ---------------------------------------------------------------------------------------------------- -- Sandbox link configuration ---------------------------------------------------------------------------------------------------- -- cfg['sandbox-subpage'] -- The name of the template subpage typically used for sandboxes. cfg['sandbox-subpage'] = 'sandbox' -- cfg['template-sandbox-preload'] -- Preload file for template sandbox pages. cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox' -- cfg['module-sandbox-preload'] -- Preload file for Lua module sandbox pages. cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox' -- cfg['sandbox-link-display'] -- The text to display for "sandbox" links. cfg['sandbox-link-display'] = 'sandbox' -- cfg['sandbox-edit-link-display'] -- The text to display for sandbox "edit" links. cfg['sandbox-edit-link-display'] = 'edit' -- cfg['sandbox-create-link-display'] -- The text to display for sandbox "create" links. cfg['sandbox-create-link-display'] = 'create' -- cfg['compare-link-display'] -- The text to display for "compare" links. cfg['compare-link-display'] = 'diff' -- cfg['mirror-edit-summary'] -- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the -- template page. cfg['mirror-edit-summary'] = 'Create sandbox version of $1' -- cfg['mirror-link-display'] -- The text to display for "mirror" links. cfg['mirror-link-display'] = 'mirror' -- cfg['mirror-link-preload'] -- The page to preload when a user clicks the "mirror" link. cfg['mirror-link-preload'] = 'Template:Documentation/mirror' ---------------------------------------------------------------------------------------------------- -- Test cases link configuration ---------------------------------------------------------------------------------------------------- -- cfg['testcases-subpage'] -- The name of the template subpage typically used for test cases. cfg['testcases-subpage'] = 'testcases' -- cfg['template-testcases-preload'] -- Preload file for template test cases pages. cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases' -- cfg['module-testcases-preload'] -- Preload file for Lua module test cases pages. cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases' -- cfg['testcases-link-display'] -- The text to display for "testcases" links. cfg['testcases-link-display'] = 'testcases' -- cfg['testcases-edit-link-display'] -- The text to display for test cases "edit" links. cfg['testcases-edit-link-display'] = 'edit' -- cfg['testcases-run-link-display'] -- The text to display for test cases "run" links. cfg['testcases-run-link-display'] = 'run' -- cfg['testcases-create-link-display'] -- The text to display for test cases "create" links. cfg['testcases-create-link-display'] = 'create' ---------------------------------------------------------------------------------------------------- -- Add categories blurb configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['add-categories-blurb'] -- Text to direct users to add categories to the /doc subpage. Not used if the "content" or -- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a -- link to the /doc subpage with a display value of cfg['doc-link-display']. --]] cfg['add-categories-blurb'] = 'Add categories to the $1 subpage.' -- cfg['doc-link-display'] -- The text to display when linking to the /doc subpage. cfg['doc-link-display'] = '/doc' ---------------------------------------------------------------------------------------------------- -- Subpages link configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['subpages-blurb'] -- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a -- display value of cfg['subpages-link-display']. In the English version this blurb is simply -- the link followed by a period, and the link display provides the actual text. --]] cfg['subpages-blurb'] = '$1.' --[[ -- cfg['subpages-link-display'] -- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'], -- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in -- the template namespace, the module namespace, or another namespace. --]] cfg['subpages-link-display'] = 'Subpages of this $1' -- cfg['template-pagetype'] -- The pagetype to display for template pages. cfg['template-pagetype'] = 'template' -- cfg['module-pagetype'] -- The pagetype to display for Lua module pages. cfg['module-pagetype'] = 'module' -- cfg['default-pagetype'] -- The pagetype to display for pages other than templates or Lua modules. cfg['default-pagetype'] = 'page' ---------------------------------------------------------------------------------------------------- -- Doc link configuration ---------------------------------------------------------------------------------------------------- -- cfg['doc-subpage'] -- The name of the subpage typically used for documentation pages. cfg['doc-subpage'] = 'doc' -- cfg['docpage-preload'] -- Preload file for template documentation pages in all namespaces. cfg['docpage-preload'] = 'Template:Documentation/preload' -- cfg['module-preload'] -- Preload file for Lua module documentation pages. cfg['module-preload'] = 'Template:Documentation/preload-module-doc' ---------------------------------------------------------------------------------------------------- -- HTML and CSS configuration ---------------------------------------------------------------------------------------------------- -- cfg['templatestyles'] -- The name of the TemplateStyles page where CSS is kept. -- Sandbox CSS will be at Module:Documentation/sandbox/styles.css when needed. cfg['templatestyles'] = 'Module:Documentation/styles.css' -- cfg['container'] -- Class which can be used to set flex or grid CSS on the -- two child divs documentation and documentation-metadata cfg['container'] = 'documentation-container' -- cfg['main-div-classes'] -- Classes added to the main HTML "div" tag. cfg['main-div-classes'] = 'documentation' -- cfg['main-div-heading-class'] -- Class for the main heading for templates and modules and assoc. talk spaces cfg['main-div-heading-class'] = 'documentation-heading' -- cfg['start-box-class'] -- Class for the start box cfg['start-box-class'] = 'documentation-startbox' -- cfg['start-box-link-classes'] -- Classes used for the [view][edit][history] or [create] links in the start box. -- mw-editsection-like is per [[Wikipedia:Village pump (technical)/Archive 117]] cfg['start-box-link-classes'] = 'mw-editsection-like plainlinks' -- cfg['end-box-class'] -- Class for the end box. cfg['end-box-class'] = 'documentation-metadata' -- cfg['end-box-plainlinks'] -- Plainlinks cfg['end-box-plainlinks'] = 'plainlinks' -- cfg['toolbar-class'] -- Class added for toolbar links. cfg['toolbar-class'] = 'documentation-toolbar' -- cfg['clear'] -- Just used to clear things. cfg['clear'] = 'documentation-clear' ---------------------------------------------------------------------------------------------------- -- Tracking category configuration ---------------------------------------------------------------------------------------------------- -- cfg['display-strange-usage-category'] -- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage -- or a /testcases subpage. This should be a boolean value (either true or false). cfg['display-strange-usage-category'] = true -- cfg['strange-usage-category'] -- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a -- /doc subpage or a /testcases subpage. cfg['strange-usage-category'] = 'Wikipedia pages with strange ((documentation)) usage' --[[ ---------------------------------------------------------------------------------------------------- -- End configuration -- -- Don't edit anything below this line. ---------------------------------------------------------------------------------------------------- --]] return cfg 71b68ed73088f1a59d61acf06bbee9fde6677f03 Module:TableTools 828 84 159 2022-01-31T13:08:18Z en>MSGJ 0 updates/fixes requested by [[User:Uzume]] Scribunto text/plain ------------------------------------------------------------------------------------ -- TableTools -- -- -- -- This module includes a number of functions for dealing with Lua tables. -- -- It is a meta-module, meant to be called from other Lua modules, and should not -- -- be called directly from #invoke. -- ------------------------------------------------------------------------------------ local libraryUtil = require('libraryUtil') local p = {} -- Define often-used variables and functions. local floor = math.floor local infinity = math.huge local checkType = libraryUtil.checkType local checkTypeMulti = libraryUtil.checkTypeMulti ------------------------------------------------------------------------------------ -- isPositiveInteger -- -- This function returns true if the given value is a positive integer, and false -- if not. Although it doesn't operate on tables, it is included here as it is -- useful for determining whether a given table key is in the array part or the -- hash part of a table. ------------------------------------------------------------------------------------ function p.isPositiveInteger(v) return type(v) == 'number' and v >= 1 and floor(v) == v and v < infinity end ------------------------------------------------------------------------------------ -- isNan -- -- This function returns true if the given number is a NaN value, and false if -- not. Although it doesn't operate on tables, it is included here as it is useful -- for determining whether a value can be a valid table key. Lua will generate an -- error if a NaN is used as a table key. ------------------------------------------------------------------------------------ function p.isNan(v) return type(v) == 'number' and v ~= v end ------------------------------------------------------------------------------------ -- shallowClone -- -- This returns a clone of a table. The value returned is a new table, but all -- subtables and functions are shared. Metamethods are respected, but the returned -- table will have no metatable of its own. ------------------------------------------------------------------------------------ function p.shallowClone(t) checkType('shallowClone', 1, t, 'table') local ret = {} for k, v in pairs(t) do ret[k] = v end return ret end ------------------------------------------------------------------------------------ -- removeDuplicates -- -- This removes duplicate values from an array. Non-positive-integer keys are -- ignored. The earliest value is kept, and all subsequent duplicate values are -- removed, but otherwise the array order is unchanged. ------------------------------------------------------------------------------------ function p.removeDuplicates(arr) checkType('removeDuplicates', 1, arr, 'table') local isNan = p.isNan local ret, exists = {}, {} for _, v in ipairs(arr) do if isNan(v) then -- NaNs can't be table keys, and they are also unique, so we don't need to check existence. ret[#ret + 1] = v else if not exists[v] then ret[#ret + 1] = v exists[v] = true end end end return ret end ------------------------------------------------------------------------------------ -- numKeys -- -- This takes a table and returns an array containing the numbers of any numerical -- keys that have non-nil values, sorted in numerical order. ------------------------------------------------------------------------------------ function p.numKeys(t) checkType('numKeys', 1, t, 'table') local isPositiveInteger = p.isPositiveInteger local nums = {} for k in pairs(t) do if isPositiveInteger(k) then nums[#nums + 1] = k end end table.sort(nums) return nums end ------------------------------------------------------------------------------------ -- affixNums -- -- This takes a table and returns an array containing the numbers of keys with the -- specified prefix and suffix. For example, for the table -- {a1 = 'foo', a3 = 'bar', a6 = 'baz'} and the prefix "a", affixNums will return -- {1, 3, 6}. ------------------------------------------------------------------------------------ function p.affixNums(t, prefix, suffix) checkType('affixNums', 1, t, 'table') checkType('affixNums', 2, prefix, 'string', true) checkType('affixNums', 3, suffix, 'string', true) local function cleanPattern(s) -- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally. return s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1') end prefix = prefix or '' suffix = suffix or '' prefix = cleanPattern(prefix) suffix = cleanPattern(suffix) local pattern = '^' .. prefix .. '([1-9]%d*)' .. suffix .. '$' local nums = {} for k in pairs(t) do if type(k) == 'string' then local num = mw.ustring.match(k, pattern) if num then nums[#nums + 1] = tonumber(num) end end end table.sort(nums) return nums end ------------------------------------------------------------------------------------ -- numData -- -- Given a table with keys like {"foo1", "bar1", "foo2", "baz2"}, returns a table -- of subtables in the format -- {[1] = {foo = 'text', bar = 'text'}, [2] = {foo = 'text', baz = 'text'}}. -- Keys that don't end with an integer are stored in a subtable named "other". The -- compress option compresses the table so that it can be iterated over with -- ipairs. ------------------------------------------------------------------------------------ function p.numData(t, compress) checkType('numData', 1, t, 'table') checkType('numData', 2, compress, 'boolean', true) local ret = {} for k, v in pairs(t) do local prefix, num = mw.ustring.match(tostring(k), '^([^0-9]*)([1-9][0-9]*)$') if num then num = tonumber(num) local subtable = ret[num] or {} if prefix == '' then -- Positional parameters match the blank string; put them at the start of the subtable instead. prefix = 1 end subtable[prefix] = v ret[num] = subtable else local subtable = ret.other or {} subtable[k] = v ret.other = subtable end end if compress then local other = ret.other ret = p.compressSparseArray(ret) ret.other = other end return ret end ------------------------------------------------------------------------------------ -- compressSparseArray -- -- This takes an array with one or more nil values, and removes the nil values -- while preserving the order, so that the array can be safely traversed with -- ipairs. ------------------------------------------------------------------------------------ function p.compressSparseArray(t) checkType('compressSparseArray', 1, t, 'table') local ret = {} local nums = p.numKeys(t) for _, num in ipairs(nums) do ret[#ret + 1] = t[num] end return ret end ------------------------------------------------------------------------------------ -- sparseIpairs -- -- This is an iterator for sparse arrays. It can be used like ipairs, but can -- handle nil values. ------------------------------------------------------------------------------------ function p.sparseIpairs(t) checkType('sparseIpairs', 1, t, 'table') local nums = p.numKeys(t) local i = 0 local lim = #nums return function () i = i + 1 if i <= lim then local key = nums[i] return key, t[key] else return nil, nil end end end ------------------------------------------------------------------------------------ -- size -- -- This returns the size of a key/value pair table. It will also work on arrays, -- but for arrays it is more efficient to use the # operator. ------------------------------------------------------------------------------------ function p.size(t) checkType('size', 1, t, 'table') local i = 0 for _ in pairs(t) do i = i + 1 end return i end local function defaultKeySort(item1, item2) -- "number" < "string", so numbers will be sorted before strings. local type1, type2 = type(item1), type(item2) if type1 ~= type2 then return type1 < type2 elseif type1 == 'table' or type1 == 'boolean' or type1 == 'function' then return tostring(item1) < tostring(item2) else return item1 < item2 end end ------------------------------------------------------------------------------------ -- keysToList -- -- Returns an array of the keys in a table, sorted using either a default -- comparison function or a custom keySort function. ------------------------------------------------------------------------------------ function p.keysToList(t, keySort, checked) if not checked then checkType('keysToList', 1, t, 'table') checkTypeMulti('keysToList', 2, keySort, {'function', 'boolean', 'nil'}) end local arr = {} local index = 1 for k in pairs(t) do arr[index] = k index = index + 1 end if keySort ~= false then keySort = type(keySort) == 'function' and keySort or defaultKeySort table.sort(arr, keySort) end return arr end ------------------------------------------------------------------------------------ -- sortedPairs -- -- Iterates through a table, with the keys sorted using the keysToList function. -- If there are only numerical keys, sparseIpairs is probably more efficient. ------------------------------------------------------------------------------------ function p.sortedPairs(t, keySort) checkType('sortedPairs', 1, t, 'table') checkType('sortedPairs', 2, keySort, 'function', true) local arr = p.keysToList(t, keySort, true) local i = 0 return function () i = i + 1 local key = arr[i] if key ~= nil then return key, t[key] else return nil, nil end end end ------------------------------------------------------------------------------------ -- isArray -- -- Returns true if the given value is a table and all keys are consecutive -- integers starting at 1. ------------------------------------------------------------------------------------ function p.isArray(v) if type(v) ~= 'table' then return false end local i = 0 for _ in pairs(v) do i = i + 1 if v[i] == nil then return false end end return true end ------------------------------------------------------------------------------------ -- isArrayLike -- -- Returns true if the given value is iterable and all keys are consecutive -- integers starting at 1. ------------------------------------------------------------------------------------ function p.isArrayLike(v) if not pcall(pairs, v) then return false end local i = 0 for _ in pairs(v) do i = i + 1 if v[i] == nil then return false end end return true end ------------------------------------------------------------------------------------ -- invert -- -- Transposes the keys and values in an array. For example, {"a", "b", "c"} -> -- {a = 1, b = 2, c = 3}. Duplicates are not supported (result values refer to -- the index of the last duplicate) and NaN values are ignored. ------------------------------------------------------------------------------------ function p.invert(arr) checkType("invert", 1, arr, "table") local isNan = p.isNan local map = {} for i, v in ipairs(arr) do if not isNan(v) then map[v] = i end end return map end ------------------------------------------------------------------------------------ -- listToSet -- -- Creates a set from the array part of the table. Indexing the set by any of the -- values of the array returns true. For example, {"a", "b", "c"} -> -- {a = true, b = true, c = true}. NaN values are ignored as Lua considers them -- never equal to any value (including other NaNs or even themselves). ------------------------------------------------------------------------------------ function p.listToSet(arr) checkType("listToSet", 1, arr, "table") local isNan = p.isNan local set = {} for _, v in ipairs(arr) do if not isNan(v) then set[v] = true end end return set end ------------------------------------------------------------------------------------ -- deepCopy -- -- Recursive deep copy function. Preserves identities of subtables. ------------------------------------------------------------------------------------ local function _deepCopy(orig, includeMetatable, already_seen) -- Stores copies of tables indexed by the original table. already_seen = already_seen or {} local copy = already_seen[orig] if copy ~= nil then return copy end if type(orig) == 'table' then copy = {} for orig_key, orig_value in pairs(orig) do copy[_deepCopy(orig_key, includeMetatable, already_seen)] = _deepCopy(orig_value, includeMetatable, already_seen) end already_seen[orig] = copy if includeMetatable then local mt = getmetatable(orig) if mt ~= nil then local mt_copy = _deepCopy(mt, includeMetatable, already_seen) setmetatable(copy, mt_copy) already_seen[mt] = mt_copy end end else -- number, string, boolean, etc copy = orig end return copy end function p.deepCopy(orig, noMetatable, already_seen) checkType("deepCopy", 3, already_seen, "table", true) return _deepCopy(orig, not noMetatable, already_seen) end ------------------------------------------------------------------------------------ -- sparseConcat -- -- Concatenates all values in the table that are indexed by a number, in order. -- sparseConcat{a, nil, c, d} => "acd" -- sparseConcat{nil, b, c, d} => "bcd" ------------------------------------------------------------------------------------ function p.sparseConcat(t, sep, i, j) local arr = {} local arr_i = 0 for _, v in p.sparseIpairs(t) do arr_i = arr_i + 1 arr[arr_i] = v end return table.concat(arr, sep, i, j) end ------------------------------------------------------------------------------------ -- length -- -- Finds the length of an array, or of a quasi-array with keys such as "data1", -- "data2", etc., using an exponential search algorithm. It is similar to the -- operator #, but may return a different value when there are gaps in the array -- portion of the table. Intended to be used on data loaded with mw.loadData. For -- other tables, use #. -- Note: #frame.args in frame object always be set to 0, regardless of the number -- of unnamed template parameters, so use this function for frame.args. ------------------------------------------------------------------------------------ function p.length(t, prefix) -- requiring module inline so that [[Module:Exponential search]] which is -- only needed by this one function doesn't get millions of transclusions local expSearch = require("Module:Exponential search") checkType('length', 1, t, 'table') checkType('length', 2, prefix, 'string', true) return expSearch(function (i) local key if prefix then key = prefix .. tostring(i) else key = i end return t[key] ~= nil end) or 0 end ------------------------------------------------------------------------------------ -- inArray -- -- Returns true if valueToFind is a member of the array, and false otherwise. ------------------------------------------------------------------------------------ function p.inArray(arr, valueToFind) checkType("inArray", 1, arr, "table") -- if valueToFind is nil, error? for _, v in ipairs(arr) do if v == valueToFind then return true end end return false end return p 085e7094ac84eb0132ee65822cf3f69cd8ba3d81 Module:Protection banner/config 828 80 151 2022-02-03T23:49:55Z en>Andrybak 0 add categorization into [[:Category:Wikipedia extended-confirmed-protected modules]] per [[Special:Diff/1069761256|request]] Scribunto text/plain -- This module provides configuration data for [[Module:Protection banner]]. return { -------------------------------------------------------------------------------- -- -- BANNER DATA -- -------------------------------------------------------------------------------- --[[ -- Banner data consists of six fields: -- * text - the main protection text that appears at the top of protection -- banners. -- * explanation - the text that appears below the main protection text, used -- to explain the details of the protection. -- * tooltip - the tooltip text you see when you move the mouse over a small -- padlock icon. -- * link - the page that the small padlock icon links to. -- * alt - the alt text for the small padlock icon. This is also used as tooltip -- text for the large protection banners. -- * image - the padlock image used in both protection banners and small padlock -- icons. -- -- The module checks in three separate tables to find a value for each field. -- First it checks the banners table, which has values specific to the reason -- for the page being protected. Then the module checks the defaultBanners -- table, which has values specific to each protection level. Finally, the -- module checks the masterBanner table, which holds data for protection -- templates to use if no data has been found in the previous two tables. -- -- The values in the banner data can take parameters. These are specified -- using ${TEXTLIKETHIS} (a dollar sign preceding a parameter name -- enclosed in curly braces). -- -- Available parameters: -- -- ${CURRENTVERSION} - a link to the page history or the move log, with the -- display message "current-version-edit-display" or -- "current-version-move-display". -- -- ${EDITREQUEST} - a link to create an edit request for the current page. -- -- ${EXPLANATIONBLURB} - an explanation blurb, e.g. "Please discuss any changes -- on the talk page; you may submit a request to ask an administrator to make -- an edit if it is minor or supported by consensus." -- -- ${IMAGELINK} - a link to set the image to, depending on the protection -- action and protection level. -- -- ${INTROBLURB} - the PROTECTIONBLURB parameter, plus the expiry if an expiry -- is set. E.g. "Editing of this page by new or unregistered users is currently -- disabled until dd Month YYYY." -- -- ${INTROFRAGMENT} - the same as ${INTROBLURB}, but without final punctuation -- so that it can be used in run-on sentences. -- -- ${PAGETYPE} - the type of the page, e.g. "article" or "template". -- Defined in the cfg.pagetypes table. -- -- ${PROTECTIONBLURB} - a blurb explaining the protection level of the page, e.g. -- "Editing of this page by new or unregistered users is currently disabled" -- -- ${PROTECTIONDATE} - the protection date, if it has been supplied to the -- template. -- -- ${PROTECTIONLEVEL} - the protection level, e.g. "fully protected" or -- "semi-protected". -- -- ${PROTECTIONLOG} - a link to the protection log or the pending changes log, -- depending on the protection action. -- -- ${TALKPAGE} - a link to the talk page. If a section is specified, links -- straight to that talk page section. -- -- ${TOOLTIPBLURB} - uses the PAGETYPE, PROTECTIONTYPE and EXPIRY parameters to -- create a blurb like "This template is semi-protected", or "This article is -- move-protected until DD Month YYYY". -- -- ${VANDAL} - links for the specified username (or the root page name) -- using Module:Vandal-m. -- -- Functions -- -- For advanced users, it is possible to use Lua functions instead of strings -- in the banner config tables. Using functions gives flexibility that is not -- possible just by using parameters. Functions take two arguments, the -- protection object and the template arguments, and they must output a string. -- -- For example: -- -- text = function (protectionObj, args) -- if protectionObj.level == 'autoconfirmed' then -- return 'foo' -- else -- return 'bar' -- end -- end -- -- Some protection object properties and methods that may be useful: -- protectionObj.action - the protection action -- protectionObj.level - the protection level -- protectionObj.reason - the protection reason -- protectionObj.expiry - the expiry. Nil if unset, the string "indef" if set -- to indefinite, and the protection time in unix time if temporary. -- protectionObj.protectionDate - the protection date in unix time, or nil if -- unspecified. -- protectionObj.bannerConfig - the banner config found by the module. Beware -- of editing the config field used by the function, as it could create an -- infinite loop. -- protectionObj:isProtected - returns a boolean showing whether the page is -- protected. -- protectionObj:isTemporary - returns a boolean showing whether the expiry is -- temporary. -- protectionObj:isIncorrect - returns a boolean showing whether the protection -- template is incorrect. --]] -- The master banner data, used if no values have been found in banners or -- defaultBanners. masterBanner = { text = '${INTROBLURB}', explanation = '${EXPLANATIONBLURB}', tooltip = '${TOOLTIPBLURB}', link = '${IMAGELINK}', alt = 'Page ${PROTECTIONLEVEL}' }, -- The default banner data. This holds banner data for different protection -- levels. -- *required* - this table needs edit, move, autoreview and upload subtables. defaultBanners = { edit = {}, move = {}, autoreview = { default = { alt = 'Page protected with pending changes', tooltip = 'All edits by unregistered and new users are subject to review prior to becoming visible to unregistered users', image = 'Pending-protection-shackle.svg' } }, upload = {} }, -- The banner data. This holds banner data for different protection reasons. -- In fact, the reasons specified in this table control which reasons are -- valid inputs to the first positional parameter. -- -- There is also a non-standard "description" field that can be used for items -- in this table. This is a description of the protection reason for use in the -- module documentation. -- -- *required* - this table needs edit, move, autoreview and upload subtables. banners = { edit = { blp = { description = 'For pages protected to promote compliance with the' .. ' [[Wikipedia:Biographies of living persons' .. '|biographies of living persons]] policy', text = '${INTROFRAGMENT} to promote compliance with' .. ' [[Wikipedia:Biographies of living persons' .. "|Wikipedia's&nbsp;policy on&nbsp;the&nbsp;biographies" .. ' of&nbsp;living&nbsp;people]].', tooltip = '${TOOLTIPFRAGMENT} to promote compliance with the policy on' .. ' biographies of living persons', }, dmca = { description = 'For pages protected by the Wikimedia Foundation' .. ' due to [[Digital Millennium Copyright Act]] takedown requests', explanation = function (protectionObj, args) local ret = 'Pursuant to a rights owner notice under the Digital' .. ' Millennium Copyright Act (DMCA) regarding some content' .. ' in this article, the Wikimedia Foundation acted under' .. ' applicable law and took down and restricted the content' .. ' in question.' if args.notice then ret = ret .. ' A copy of the received notice can be found here: ' .. args.notice .. '.' end ret = ret .. ' For more information, including websites discussing' .. ' how to file a counter-notice, please see' .. " [[Wikipedia:Office actions]] and the article's ${TALKPAGE}." .. "'''Do not remove this template from the article until the" .. " restrictions are withdrawn'''." return ret end, image = 'Office-protection-shackle.svg', }, dispute = { description = 'For pages protected due to editing disputes', text = function (protectionObj, args) -- Find the value of "disputes". local display = 'disputes' local disputes if args.section then disputes = string.format( '[[%s:%s#%s|%s]]', mw.site.namespaces[protectionObj.title.namespace].talk.name, protectionObj.title.text, args.section, display ) else disputes = display end -- Make the blurb, depending on the expiry. local msg if type(protectionObj.expiry) == 'number' then msg = '${INTROFRAGMENT} or until editing %s have been resolved.' else msg = '${INTROFRAGMENT} until editing %s have been resolved.' end return string.format(msg, disputes) end, explanation = "This protection is '''not''' an endorsement of the" .. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}', tooltip = '${TOOLTIPFRAGMENT} due to editing disputes', }, ecp = { description = 'For articles in topic areas authorized by' .. ' [[Wikipedia:Arbitration Committee|ArbCom]] or' .. ' meets the criteria for community use', tooltip = 'This ${PAGETYPE} is extended-confirmed protected', alt = 'Extended-protected ${PAGETYPE}', }, mainpage = { description = 'For pages protected for being displayed on the [[Main Page]]', text = 'This file is currently' .. ' [[Wikipedia:This page is protected|protected]] from' .. ' editing because it is currently or will soon be displayed' .. ' on the [[Main Page]].', explanation = 'Images on the Main Page are protected due to their high' .. ' visibility. Please discuss any necessary changes on the ${TALKPAGE}.' .. '<br /><span style="font-size:90%;">' .. "'''Administrators:''' Once this image is definitely off the Main Page," .. ' please unprotect this file, or reduce to semi-protection,' .. ' as appropriate.</span>', }, office = { description = 'For pages protected by the Wikimedia Foundation', text = function (protectionObj, args) local ret = 'This ${PAGETYPE} is currently under the' .. ' scrutiny of the' .. ' [[Wikipedia:Office actions|Wikimedia Foundation Office]]' .. ' and is protected.' if protectionObj.protectionDate then ret = ret .. ' It has been protected since ${PROTECTIONDATE}.' end return ret end, explanation = "If you can edit this page, please discuss all changes and" .. " additions on the ${TALKPAGE} first. '''Do not remove protection from this" .. " page unless you are authorized by the Wikimedia Foundation to do" .. " so.'''", image = 'Office-protection-shackle.svg', }, reset = { description = 'For pages protected by the Wikimedia Foundation and' .. ' "reset" to a bare-bones version', text = 'This ${PAGETYPE} is currently under the' .. ' scrutiny of the' .. ' [[Wikipedia:Office actions|Wikimedia Foundation Office]]' .. ' and is protected.', explanation = function (protectionObj, args) local ret = '' if protectionObj.protectionDate then ret = ret .. 'On ${PROTECTIONDATE} this ${PAGETYPE} was' else ret = ret .. 'This ${PAGETYPE} has been' end ret = ret .. ' reduced to a' .. ' simplified, "bare bones" version so that it may be completely' .. ' rewritten to ensure it meets the policies of' .. ' [[WP:NPOV|Neutral Point of View]] and [[WP:V|Verifiability]].' .. ' Standard Wikipedia policies will apply to its rewriting—which' .. ' will eventually be open to all editors—and will be strictly' .. ' enforced. The ${PAGETYPE} has been ${PROTECTIONLEVEL} while' .. ' it is being rebuilt.\n\n' .. 'Any insertion of material directly from' .. ' pre-protection revisions of the ${PAGETYPE} will be removed, as' .. ' will any material added to the ${PAGETYPE} that is not properly' .. ' sourced. The associated talk page(s) were also cleared on the' .. " same date.\n\n" .. "If you can edit this page, please discuss all changes and" .. " additions on the ${TALKPAGE} first. '''Do not override" .. " this action, and do not remove protection from this page," .. " unless you are authorized by the Wikimedia Foundation" .. " to do so. No editor may remove this notice.'''" return ret end, image = 'Office-protection-shackle.svg', }, sock = { description = 'For pages protected due to' .. ' [[Wikipedia:Sock puppetry|sock puppetry]]', text = '${INTROFRAGMENT} to prevent [[Wikipedia:Sock puppetry|sock puppets]] of' .. ' [[Wikipedia:Blocking policy|blocked]] or' .. ' [[Wikipedia:Banning policy|banned users]]' .. ' from editing it.', tooltip = '${TOOLTIPFRAGMENT} to prevent sock puppets of blocked or banned users from' .. ' editing it', }, template = { description = 'For [[Wikipedia:High-risk templates|high-risk]]' .. ' templates and Lua modules', text = 'This is a permanently [[Help:Protection|protected]] ${PAGETYPE},' .. ' as it is [[Wikipedia:High-risk templates|high-risk]].', explanation = 'Please discuss any changes on the ${TALKPAGE}; you may' .. ' ${EDITREQUEST} to ask an' .. ' [[Wikipedia:Administrators|administrator]] or' .. ' [[Wikipedia:Template editor|template editor]] to make an edit if' .. ' it is [[Help:Minor edit#When to mark an edit as a minor edit' .. '|uncontroversial]] or supported by' .. ' [[Wikipedia:Consensus|consensus]]. You can also' .. ' [[Wikipedia:Requests for page protection|request]] that the page be' .. ' unprotected.', tooltip = 'This high-risk ${PAGETYPE} is permanently ${PROTECTIONLEVEL}' .. ' to prevent vandalism', alt = 'Permanently protected ${PAGETYPE}', }, usertalk = { description = 'For pages protected against disruptive edits by a' .. ' particular user', text = '${INTROFRAGMENT} to prevent ${VANDAL} from using it to make disruptive edits,' .. ' such as abusing the' .. ' &#123;&#123;[[Template:unblock|unblock]]&#125;&#125; template.', explanation = 'If you cannot edit this user talk page and you need to' .. ' make a change or leave a message, you can' .. ' [[Wikipedia:Requests for page protection' .. '#Current requests for edits to a protected page' .. '|request an edit]],' .. ' [[Wikipedia:Requests for page protection' .. '#Current requests for reduction in protection level' .. '|request unprotection]],' .. ' [[Special:Userlogin|log in]],' .. ' or [[Special:UserLogin/signup|create an account]].', }, vandalism = { description = 'For pages protected against' .. ' [[Wikipedia:Vandalism|vandalism]]', text = '${INTROFRAGMENT} due to [[Wikipedia:Vandalism|vandalism]].', explanation = function (protectionObj, args) local ret = '' if protectionObj.level == 'sysop' then ret = ret .. "This protection is '''not''' an endorsement of the" .. ' ${CURRENTVERSION}. ' end return ret .. '${EXPLANATIONBLURB}' end, tooltip = '${TOOLTIPFRAGMENT} due to vandalism', } }, move = { dispute = { description = 'For pages protected against page moves due to' .. ' disputes over the page title', explanation = "This protection is '''not''' an endorsement of the" .. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}', image = 'Move-protection-shackle.svg' }, vandalism = { description = 'For pages protected against' .. ' [[Wikipedia:Vandalism#Page-move vandalism' .. ' |page-move vandalism]]' } }, autoreview = {}, upload = {} }, -------------------------------------------------------------------------------- -- -- GENERAL DATA TABLES -- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -- Protection blurbs -------------------------------------------------------------------------------- -- This table produces the protection blurbs available with the -- ${PROTECTIONBLURB} parameter. It is sorted by protection action and -- protection level, and is checked by the module in the following order: -- 1. page's protection action, page's protection level -- 2. page's protection action, default protection level -- 3. "edit" protection action, default protection level -- -- It is possible to use banner parameters inside this table. -- *required* - this table needs edit, move, autoreview and upload subtables. protectionBlurbs = { edit = { default = 'This ${PAGETYPE} is currently [[Help:Protection|' .. 'protected]] from editing', autoconfirmed = 'Editing of this ${PAGETYPE} by [[Wikipedia:User access' .. ' levels#New users|new]] or [[Wikipedia:User access levels#Unregistered' .. ' users|unregistered]] users is currently [[Help:Protection|disabled]]', extendedconfirmed = 'This ${PAGETYPE} is currently under extended confirmed protection', }, move = { default = 'This ${PAGETYPE} is currently [[Help:Protection|protected]]' .. ' from [[Help:Moving a page|page moves]]' }, autoreview = { default = 'All edits made to this ${PAGETYPE} by' .. ' [[Wikipedia:User access levels#New users|new]] or' .. ' [[Wikipedia:User access levels#Unregistered users|unregistered]]' .. ' users are currently' .. ' [[Wikipedia:Pending changes|subject to review]]' }, upload = { default = 'Uploading new versions of this ${PAGETYPE} is currently disabled' } }, -------------------------------------------------------------------------------- -- Explanation blurbs -------------------------------------------------------------------------------- -- This table produces the explanation blurbs available with the -- ${EXPLANATIONBLURB} parameter. It is sorted by protection action, -- protection level, and whether the page is a talk page or not. If the page is -- a talk page it will have a talk key of "talk"; otherwise it will have a talk -- key of "subject". The table is checked in the following order: -- 1. page's protection action, page's protection level, page's talk key -- 2. page's protection action, page's protection level, default talk key -- 3. page's protection action, default protection level, page's talk key -- 4. page's protection action, default protection level, default talk key -- -- It is possible to use banner parameters inside this table. -- *required* - this table needs edit, move, autoreview and upload subtables. explanationBlurbs = { edit = { autoconfirmed = { subject = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details. If you' .. ' cannot edit this ${PAGETYPE} and you wish to make a change, you can' .. ' ${EDITREQUEST}, discuss changes on the ${TALKPAGE},' .. ' [[Wikipedia:Requests for page protection' .. '#Current requests for reduction in protection level' .. '|request unprotection]], [[Special:Userlogin|log in]], or' .. ' [[Special:UserLogin/signup|create an account]].', default = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details. If you' .. ' cannot edit this ${PAGETYPE} and you wish to make a change, you can' .. ' [[Wikipedia:Requests for page protection' .. '#Current requests for reduction in protection level' .. '|request unprotection]], [[Special:Userlogin|log in]], or' .. ' [[Special:UserLogin/signup|create an account]].', }, extendedconfirmed = { default = 'Extended confirmed protection prevents edits from all unregistered editors' .. ' and registered users with fewer than 30 days tenure and 500 edits.' .. ' The [[Wikipedia:Protection policy#extended|policy on community use]]' .. ' specifies that extended confirmed protection can be applied to combat' .. ' disruption, if semi-protection has proven to be ineffective.' .. ' Extended confirmed protection may also be applied to enforce' .. ' [[Wikipedia:Arbitration Committee|arbitration sanctions]].' .. ' Please discuss any changes on the ${TALKPAGE}; you may' .. ' ${EDITREQUEST} to ask for uncontroversial changes supported by' .. ' [[Wikipedia:Consensus|consensus]].' }, default = { subject = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' Please discuss any changes on the ${TALKPAGE}; you' .. ' may ${EDITREQUEST} to ask an' .. ' [[Wikipedia:Administrators|administrator]] to make an edit if it' .. ' is [[Help:Minor edit#When to mark an edit as a minor edit' .. '|uncontroversial]] or supported by [[Wikipedia:Consensus' .. '|consensus]]. You may also [[Wikipedia:Requests for' .. ' page protection#Current requests for reduction in protection level' .. '|request]] that this page be unprotected.', default = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' You may [[Wikipedia:Requests for page' .. ' protection#Current requests for edits to a protected page|request an' .. ' edit]] to this page, or [[Wikipedia:Requests for' .. ' page protection#Current requests for reduction in protection level' .. '|ask]] for it to be unprotected.' } }, move = { default = { subject = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' The page may still be edited but cannot be moved' .. ' until unprotected. Please discuss any suggested moves on the' .. ' ${TALKPAGE} or at [[Wikipedia:Requested moves]]. You can also' .. ' [[Wikipedia:Requests for page protection|request]] that the page be' .. ' unprotected.', default = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' The page may still be edited but cannot be moved' .. ' until unprotected. Please discuss any suggested moves at' .. ' [[Wikipedia:Requested moves]]. You can also' .. ' [[Wikipedia:Requests for page protection|request]] that the page be' .. ' unprotected.' } }, autoreview = { default = { default = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' Edits to this ${PAGETYPE} by new and unregistered users' .. ' will not be visible to readers until they are accepted by' .. ' a reviewer. To avoid the need for your edits to be' .. ' reviewed, you may' .. ' [[Wikipedia:Requests for page protection' .. '#Current requests for reduction in protection level' .. '|request unprotection]], [[Special:Userlogin|log in]], or' .. ' [[Special:UserLogin/signup|create an account]].' }, }, upload = { default = { default = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' The page may still be edited but new versions of the file' .. ' cannot be uploaded until it is unprotected. You can' .. ' request that a new version be uploaded by using a' .. ' [[Wikipedia:Edit requests|protected edit request]], or you' .. ' can [[Wikipedia:Requests for page protection|request]]' .. ' that the file be unprotected.' } } }, -------------------------------------------------------------------------------- -- Protection levels -------------------------------------------------------------------------------- -- This table provides the data for the ${PROTECTIONLEVEL} parameter, which -- produces a short label for different protection levels. It is sorted by -- protection action and protection level, and is checked in the following -- order: -- 1. page's protection action, page's protection level -- 2. page's protection action, default protection level -- 3. "edit" protection action, default protection level -- -- It is possible to use banner parameters inside this table. -- *required* - this table needs edit, move, autoreview and upload subtables. protectionLevels = { edit = { default = 'protected', templateeditor = 'template-protected', extendedconfirmed = 'extended-protected', autoconfirmed = 'semi-protected', }, move = { default = 'move-protected' }, autoreview = { }, upload = { default = 'upload-protected' } }, -------------------------------------------------------------------------------- -- Images -------------------------------------------------------------------------------- -- This table lists different padlock images for each protection action and -- protection level. It is used if an image is not specified in any of the -- banner data tables, and if the page does not satisfy the conditions for using -- the ['image-filename-indef'] image. It is checked in the following order: -- 1. page's protection action, page's protection level -- 2. page's protection action, default protection level images = { edit = { default = 'Full-protection-shackle.svg', templateeditor = 'Template-protection-shackle.svg', extendedconfirmed = 'Extended-protection-shackle.svg', autoconfirmed = 'Semi-protection-shackle.svg' }, move = { default = 'Move-protection-shackle.svg', }, autoreview = { default = 'Pending-protection-shackle.svg' }, upload = { default = 'Upload-protection-shackle.svg' } }, -- Pages with a reason specified in this table will show the special "indef" -- padlock, defined in the 'image-filename-indef' message, if no expiry is set. indefImageReasons = { template = true }, -------------------------------------------------------------------------------- -- Image links -------------------------------------------------------------------------------- -- This table provides the data for the ${IMAGELINK} parameter, which gets -- the image link for small padlock icons based on the page's protection action -- and protection level. It is checked in the following order: -- 1. page's protection action, page's protection level -- 2. page's protection action, default protection level -- 3. "edit" protection action, default protection level -- -- It is possible to use banner parameters inside this table. -- *required* - this table needs edit, move, autoreview and upload subtables. imageLinks = { edit = { default = 'Wikipedia:Protection policy#full', templateeditor = 'Wikipedia:Protection policy#template', extendedconfirmed = 'Wikipedia:Protection policy#extended', autoconfirmed = 'Wikipedia:Protection policy#semi' }, move = { default = 'Wikipedia:Protection policy#move' }, autoreview = { default = 'Wikipedia:Protection policy#pending' }, upload = { default = 'Wikipedia:Protection policy#upload' } }, -------------------------------------------------------------------------------- -- Padlock indicator names -------------------------------------------------------------------------------- -- This table provides the "name" attribute for the <indicator> extension tag -- with which small padlock icons are generated. All indicator tags on a page -- are displayed in alphabetical order based on this attribute, and with -- indicator tags with duplicate names, the last tag on the page wins. -- The attribute is chosen based on the protection action; table keys must be a -- protection action name or the string "default". padlockIndicatorNames = { autoreview = 'pp-autoreview', default = 'pp-default' }, -------------------------------------------------------------------------------- -- Protection categories -------------------------------------------------------------------------------- --[[ -- The protection categories are stored in the protectionCategories table. -- Keys to this table are made up of the following strings: -- -- 1. the expiry date -- 2. the namespace -- 3. the protection reason (e.g. "dispute" or "vandalism") -- 4. the protection level (e.g. "sysop" or "autoconfirmed") -- 5. the action (e.g. "edit" or "move") -- -- When the module looks up a category in the table, first it will will check to -- see a key exists that corresponds to all five parameters. For example, a -- user page semi-protected from vandalism for two weeks would have the key -- "temp-user-vandalism-autoconfirmed-edit". If no match is found, the module -- changes the first part of the key to "all" and checks the table again. It -- keeps checking increasingly generic key combinations until it finds the -- field, or until it reaches the key "all-all-all-all-all". -- -- The module uses a binary matrix to determine the order in which to search. -- This is best demonstrated by a table. In this table, the "0" values -- represent "all", and the "1" values represent the original data (e.g. -- "indef" or "file" or "vandalism"). -- -- expiry namespace reason level action -- order -- 1 1 1 1 1 1 -- 2 0 1 1 1 1 -- 3 1 0 1 1 1 -- 4 0 0 1 1 1 -- 5 1 1 0 1 1 -- 6 0 1 0 1 1 -- 7 1 0 0 1 1 -- 8 0 0 0 1 1 -- 9 1 1 1 0 1 -- 10 0 1 1 0 1 -- 11 1 0 1 0 1 -- 12 0 0 1 0 1 -- 13 1 1 0 0 1 -- 14 0 1 0 0 1 -- 15 1 0 0 0 1 -- 16 0 0 0 0 1 -- 17 1 1 1 1 0 -- 18 0 1 1 1 0 -- 19 1 0 1 1 0 -- 20 0 0 1 1 0 -- 21 1 1 0 1 0 -- 22 0 1 0 1 0 -- 23 1 0 0 1 0 -- 24 0 0 0 1 0 -- 25 1 1 1 0 0 -- 26 0 1 1 0 0 -- 27 1 0 1 0 0 -- 28 0 0 1 0 0 -- 29 1 1 0 0 0 -- 30 0 1 0 0 0 -- 31 1 0 0 0 0 -- 32 0 0 0 0 0 -- -- In this scheme the action has the highest priority, as it is the last -- to change, and the expiry has the least priority, as it changes the most. -- The priorities of the expiry, the protection level and the action are -- fixed, but the priorities of the reason and the namespace can be swapped -- through the use of the cfg.bannerDataNamespaceHasPriority table. --]] -- If the reason specified to the template is listed in this table, -- namespace data will take priority over reason data in the protectionCategories -- table. reasonsWithNamespacePriority = { vandalism = true, }, -- The string to use as a namespace key for the protectionCategories table for each -- namespace number. categoryNamespaceKeys = { [ 2] = 'user', [ 3] = 'user', [ 4] = 'project', [ 6] = 'file', [ 8] = 'mediawiki', [ 10] = 'template', [ 12] = 'project', [ 14] = 'category', [100] = 'portal', [828] = 'module', }, protectionCategories = { ['all|all|all|all|all'] = 'Wikipedia fully protected pages', ['all|all|office|all|all'] = 'Wikipedia Office-protected pages', ['all|all|reset|all|all'] = 'Wikipedia Office-protected pages', ['all|all|dmca|all|all'] = 'Wikipedia Office-protected pages', ['all|all|mainpage|all|all'] = 'Wikipedia fully-protected main page files', ['all|all|all|extendedconfirmed|all'] = 'Wikipedia extended-confirmed-protected pages', ['all|all|ecp|extendedconfirmed|all'] = 'Wikipedia extended-confirmed-protected pages', ['all|template|all|all|edit'] = 'Wikipedia fully protected templates', ['all|all|all|autoconfirmed|edit'] = 'Wikipedia semi-protected pages', ['indef|all|all|autoconfirmed|edit'] = 'Wikipedia indefinitely semi-protected pages', ['all|all|blp|autoconfirmed|edit'] = 'Wikipedia indefinitely semi-protected biographies of living people', ['temp|all|blp|autoconfirmed|edit'] = 'Wikipedia temporarily semi-protected biographies of living people', ['all|all|dispute|autoconfirmed|edit'] = 'Wikipedia pages semi-protected due to dispute', ['all|all|sock|autoconfirmed|edit'] = 'Wikipedia pages semi-protected from banned users', ['all|all|vandalism|autoconfirmed|edit'] = 'Wikipedia pages semi-protected against vandalism', ['all|category|all|autoconfirmed|edit'] = 'Wikipedia semi-protected categories', ['all|file|all|autoconfirmed|edit'] = 'Wikipedia semi-protected files', ['all|portal|all|autoconfirmed|edit'] = 'Wikipedia semi-protected portals', ['all|project|all|autoconfirmed|edit'] = 'Wikipedia semi-protected project pages', ['all|talk|all|autoconfirmed|edit'] = 'Wikipedia semi-protected talk pages', ['all|template|all|autoconfirmed|edit'] = 'Wikipedia semi-protected templates', ['all|user|all|autoconfirmed|edit'] = 'Wikipedia semi-protected user and user talk pages', ['all|all|all|templateeditor|edit'] = 'Wikipedia template-protected pages other than templates and modules', ['all|template|all|templateeditor|edit'] = 'Wikipedia template-protected templates', ['all|template|all|templateeditor|move'] = 'Wikipedia template-protected templates', -- move-protected templates ['all|all|blp|sysop|edit'] = 'Wikipedia indefinitely protected biographies of living people', ['temp|all|blp|sysop|edit'] = 'Wikipedia temporarily protected biographies of living people', ['all|all|dispute|sysop|edit'] = 'Wikipedia pages protected due to dispute', ['all|all|sock|sysop|edit'] = 'Wikipedia pages protected from banned users', ['all|all|vandalism|sysop|edit'] = 'Wikipedia pages protected against vandalism', ['all|category|all|sysop|edit'] = 'Wikipedia fully protected categories', ['all|file|all|sysop|edit'] = 'Wikipedia fully-protected files', ['all|project|all|sysop|edit'] = 'Wikipedia fully-protected project pages', ['all|talk|all|sysop|edit'] = 'Wikipedia fully-protected talk pages', ['all|template|all|extendedconfirmed|edit'] = 'Wikipedia extended-confirmed-protected templates', ['all|template|all|sysop|edit'] = 'Wikipedia fully protected templates', ['all|user|all|sysop|edit'] = 'Wikipedia fully protected user and user talk pages', ['all|module|all|all|edit'] = 'Wikipedia fully-protected modules', ['all|module|all|templateeditor|edit'] = 'Wikipedia template-protected modules', ['all|module|all|extendedconfirmed|edit'] = 'Wikipedia extended-confirmed-protected modules', ['all|module|all|autoconfirmed|edit'] = 'Wikipedia semi-protected modules', ['all|all|all|sysop|move'] = 'Wikipedia move-protected pages', ['indef|all|all|sysop|move'] = 'Wikipedia indefinitely move-protected pages', ['all|all|dispute|sysop|move'] = 'Wikipedia pages move-protected due to dispute', ['all|all|vandalism|sysop|move'] = 'Wikipedia pages move-protected due to vandalism', ['all|portal|all|sysop|move'] = 'Wikipedia move-protected portals', ['all|project|all|sysop|move'] = 'Wikipedia move-protected project pages', ['all|talk|all|sysop|move'] = 'Wikipedia move-protected talk pages', ['all|template|all|sysop|move'] = 'Wikipedia move-protected templates', ['all|user|all|sysop|move'] = 'Wikipedia move-protected user and user talk pages', ['all|all|all|autoconfirmed|autoreview'] = 'Wikipedia pending changes protected pages', ['all|file|all|all|upload'] = 'Wikipedia upload-protected files', }, -------------------------------------------------------------------------------- -- Expiry category config -------------------------------------------------------------------------------- -- This table configures the expiry category behaviour for each protection -- action. -- * If set to true, setting that action will always categorise the page if -- an expiry parameter is not set. -- * If set to false, setting that action will never categorise the page. -- * If set to nil, the module will categorise the page if: -- 1) an expiry parameter is not set, and -- 2) a reason is provided, and -- 3) the specified reason is not blacklisted in the reasonsWithoutExpiryCheck -- table. expiryCheckActions = { edit = nil, move = false, autoreview = true, upload = false }, reasonsWithoutExpiryCheck = { blp = true, template = true, }, -------------------------------------------------------------------------------- -- Pagetypes -------------------------------------------------------------------------------- -- This table produces the page types available with the ${PAGETYPE} parameter. -- Keys are namespace numbers, or the string "default" for the default value. pagetypes = { [0] = 'article', [6] = 'file', [10] = 'template', [14] = 'category', [828] = 'module', default = 'page' }, -------------------------------------------------------------------------------- -- Strings marking indefinite protection -------------------------------------------------------------------------------- -- This table contains values passed to the expiry parameter that mean the page -- is protected indefinitely. indefStrings = { ['indef'] = true, ['indefinite'] = true, ['indefinitely'] = true, ['infinite'] = true, }, -------------------------------------------------------------------------------- -- Group hierarchy -------------------------------------------------------------------------------- -- This table maps each group to all groups that have a superset of the original -- group's page editing permissions. hierarchy = { sysop = {}, reviewer = {'sysop'}, filemover = {'sysop'}, templateeditor = {'sysop'}, extendedconfirmed = {'sysop'}, autoconfirmed = {'reviewer', 'filemover', 'templateeditor', 'extendedconfirmed'}, user = {'autoconfirmed'}, ['*'] = {'user'} }, -------------------------------------------------------------------------------- -- Wrapper templates and their default arguments -------------------------------------------------------------------------------- -- This table contains wrapper templates used with the module, and their -- default arguments. Templates specified in this table should contain the -- following invocation, and no other template content: -- -- {{#invoke:Protection banner|main}} -- -- If other content is desired, it can be added between -- <noinclude>...</noinclude> tags. -- -- When a user calls one of these wrapper templates, they will use the -- default arguments automatically. However, users can override any of the -- arguments. wrappers = { ['Template:Pp'] = {}, ['Template:Pp-extended'] = {'ecp'}, ['Template:Pp-blp'] = {'blp'}, -- we don't need Template:Pp-create ['Template:Pp-dispute'] = {'dispute'}, ['Template:Pp-main-page'] = {'mainpage'}, ['Template:Pp-move'] = {action = 'move', catonly = 'yes'}, ['Template:Pp-move-dispute'] = {'dispute', action = 'move', catonly = 'yes'}, -- we don't need Template:Pp-move-indef ['Template:Pp-move-vandalism'] = {'vandalism', action = 'move', catonly = 'yes'}, ['Template:Pp-office'] = {'office'}, ['Template:Pp-office-dmca'] = {'dmca'}, ['Template:Pp-pc'] = {action = 'autoreview', small = true}, ['Template:Pp-pc1'] = {action = 'autoreview', small = true}, ['Template:Pp-reset'] = {'reset'}, ['Template:Pp-semi-indef'] = {small = true}, ['Template:Pp-sock'] = {'sock'}, ['Template:Pp-template'] = {'template', small = true}, ['Template:Pp-upload'] = {action = 'upload'}, ['Template:Pp-usertalk'] = {'usertalk'}, ['Template:Pp-vandalism'] = {'vandalism'}, }, -------------------------------------------------------------------------------- -- -- MESSAGES -- -------------------------------------------------------------------------------- msg = { -------------------------------------------------------------------------------- -- Intro blurb and intro fragment -------------------------------------------------------------------------------- -- These messages specify what is produced by the ${INTROBLURB} and -- ${INTROFRAGMENT} parameters. If the protection is temporary they use the -- intro-blurb-expiry or intro-fragment-expiry, and if not they use -- intro-blurb-noexpiry or intro-fragment-noexpiry. -- It is possible to use banner parameters in these messages. ['intro-blurb-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY}.', ['intro-blurb-noexpiry'] = '${PROTECTIONBLURB}.', ['intro-fragment-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY},', ['intro-fragment-noexpiry'] = '${PROTECTIONBLURB}', -------------------------------------------------------------------------------- -- Tooltip blurb -------------------------------------------------------------------------------- -- These messages specify what is produced by the ${TOOLTIPBLURB} parameter. -- If the protection is temporary the tooltip-blurb-expiry message is used, and -- if not the tooltip-blurb-noexpiry message is used. -- It is possible to use banner parameters in these messages. ['tooltip-blurb-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY}.', ['tooltip-blurb-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}.', ['tooltip-fragment-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY},', ['tooltip-fragment-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}', -------------------------------------------------------------------------------- -- Special explanation blurb -------------------------------------------------------------------------------- -- An explanation blurb for pages that cannot be unprotected, e.g. for pages -- in the MediaWiki namespace. -- It is possible to use banner parameters in this message. ['explanation-blurb-nounprotect'] = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' Please discuss any changes on the ${TALKPAGE}; you' .. ' may ${EDITREQUEST} to ask an' .. ' [[Wikipedia:Administrators|administrator]] to make an edit if it' .. ' is [[Help:Minor edit#When to mark an edit as a minor edit' .. '|uncontroversial]] or supported by [[Wikipedia:Consensus' .. '|consensus]].', -------------------------------------------------------------------------------- -- Protection log display values -------------------------------------------------------------------------------- -- These messages determine the display values for the protection log link -- or the pending changes log link produced by the ${PROTECTIONLOG} parameter. -- It is possible to use banner parameters in these messages. ['protection-log-display'] = 'protection log', ['pc-log-display'] = 'pending changes log', -------------------------------------------------------------------------------- -- Current version display values -------------------------------------------------------------------------------- -- These messages determine the display values for the page history link -- or the move log link produced by the ${CURRENTVERSION} parameter. -- It is possible to use banner parameters in these messages. ['current-version-move-display'] = 'current title', ['current-version-edit-display'] = 'current version', -------------------------------------------------------------------------------- -- Talk page -------------------------------------------------------------------------------- -- This message determines the display value of the talk page link produced -- with the ${TALKPAGE} parameter. -- It is possible to use banner parameters in this message. ['talk-page-link-display'] = 'talk page', -------------------------------------------------------------------------------- -- Edit requests -------------------------------------------------------------------------------- -- This message determines the display value of the edit request link produced -- with the ${EDITREQUEST} parameter. -- It is possible to use banner parameters in this message. ['edit-request-display'] = 'submit an edit request', -------------------------------------------------------------------------------- -- Expiry date format -------------------------------------------------------------------------------- -- This is the format for the blurb expiry date. It should be valid input for -- the first parameter of the #time parser function. ['expiry-date-format'] = 'F j, Y "at" H:i e', -------------------------------------------------------------------------------- -- Tracking categories -------------------------------------------------------------------------------- -- These messages determine which tracking categories the module outputs. ['tracking-category-incorrect'] = 'Wikipedia pages with incorrect protection templates', ['tracking-category-template'] = 'Wikipedia template-protected pages other than templates and modules', -------------------------------------------------------------------------------- -- Images -------------------------------------------------------------------------------- -- These are images that are not defined by their protection action and protection level. ['image-filename-indef'] = 'Full-protection-shackle.svg', ['image-filename-default'] = 'Transparent.gif', -------------------------------------------------------------------------------- -- End messages -------------------------------------------------------------------------------- } -------------------------------------------------------------------------------- -- End configuration -------------------------------------------------------------------------------- } 7b4133071e798dbabff5c4e8628e5537a1d376e3 Template:Documentation subpage 10 28 47 2022-02-09T04:09:32Z en>Bsherr 0 semantic emphasis, shortening emphasized phrase wikitext text/x-wiki <includeonly><!-- -->{{#ifeq:{{lc:{{SUBPAGENAME}}}} |{{{override|doc}}} | <!--(this template has been transcluded on a /doc or /{{{override}}} page)--> </includeonly><!-- -->{{#ifeq:{{{doc-notice|show}}} |show | {{Mbox | type = notice | style = margin-bottom:1.0em; | image = [[File:Edit-copy green.svg|40px|alt=|link=]] | text = {{strong|This is a [[Wikipedia:Template documentation|documentation]] [[Wikipedia:Subpages|subpage]]}} for {{terminate sentence|{{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}}}<br />It contains usage information, [[Wikipedia:Categorization|categories]] and other content that is not part of the original {{#if:{{{text2|}}} |{{{text2}}} |{{#if:{{{text1|}}} |{{{text1}}} |{{#ifeq:{{SUBJECTSPACE}} |{{ns:User}} |{{lc:{{SUBJECTSPACE}}}} template page |{{#if:{{SUBJECTSPACE}} |{{lc:{{SUBJECTSPACE}}}} page|article}}}}}}}}. }} }}<!-- -->{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}<!-- -->{{#if:{{{inhibit|}}} |<!--(don't categorize)--> | <includeonly><!-- -->{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}} | [[Category:{{#switch:{{SUBJECTSPACE}} |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]] | [[Category:Documentation subpages without corresponding pages]] }}<!-- --></includeonly> }}<!-- (completing initial #ifeq: at start of template:) --><includeonly> | <!--(this template has not been transcluded on a /doc or /{{{override}}} page)--> }}<!-- --></includeonly><noinclude>{{Documentation}}</noinclude> 932915be87123dcf74687ffca846a3130a6a52af Module:Check for unknown parameters 828 61 113 2022-02-21T05:24:13Z en>BusterD 0 Changed protection settings for "[[Module:Check for unknown parameters]]": [[WP:High-risk templates|Highly visible template]]; requested at [[WP:RfPP]] ([Edit=Require administrator access] (indefinite) [Move=Require administrator access] (indefinite)) Scribunto text/plain -- This module may be used to compare the arguments passed to the parent -- with a list of arguments, returning a specified result if an argument is -- not on the list local p = {} local function trim(s) return s:match('^%s*(.-)%s*$') end local function isnotempty(s) return s and s:match('%S') end local function clean(text) -- Return text cleaned for display and truncated if too long. -- Strip markers are replaced with dummy text representing the original wikitext. local pos, truncated local function truncate(text) if truncated then return '' end if mw.ustring.len(text) > 25 then truncated = true text = mw.ustring.sub(text, 1, 25) .. '...' end return mw.text.nowiki(text) end local parts = {} for before, tag, remainder in text:gmatch('([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()') do pos = remainder table.insert(parts, truncate(before) .. '&lt;' .. tag .. '&gt;...&lt;/' .. tag .. '&gt;') end table.insert(parts, truncate(text:sub(pos or 1))) return table.concat(parts) end function p._check(args, pargs) if type(args) ~= "table" or type(pargs) ~= "table" then -- TODO: error handling return end -- create the list of known args, regular expressions, and the return string local knownargs = {} local regexps = {} for k, v in pairs(args) do if type(k) == 'number' then v = trim(v) knownargs[v] = 1 elseif k:find('^regexp[1-9][0-9]*$') then table.insert(regexps, '^' .. v .. '$') end end -- loop over the parent args, and make sure they are on the list local ignoreblank = isnotempty(args['ignoreblank']) local showblankpos = isnotempty(args['showblankpositional']) local values = {} for k, v in pairs(pargs) do if type(k) == 'string' and knownargs[k] == nil then local knownflag = false for _, regexp in ipairs(regexps) do if mw.ustring.match(k, regexp) then knownflag = true break end end if not knownflag and ( not ignoreblank or isnotempty(v) ) then table.insert(values, clean(k)) end elseif type(k) == 'number' and knownargs[tostring(k)] == nil then local knownflag = false for _, regexp in ipairs(regexps) do if mw.ustring.match(tostring(k), regexp) then knownflag = true break end end if not knownflag and ( showblankpos or isnotempty(v) ) then table.insert(values, k .. ' = ' .. clean(v)) end end end -- add results to the output tables local res = {} if #values > 0 then local unknown_text = args['unknown'] or 'Found _VALUE_, ' if mw.getCurrentFrame():preprocess( "{{REVISIONID}}" ) == "" then local preview_text = args['preview'] if isnotempty(preview_text) then preview_text = require('Module:If preview')._warning({preview_text}) elseif preview == nil then preview_text = unknown_text end unknown_text = preview_text end for _, v in pairs(values) do -- Fix odd bug for | = which gets stripped to the empty string and -- breaks category links if v == '' then v = ' ' end -- avoid error with v = 'example%2' ("invalid capture index") local r = unknown_text:gsub('_VALUE_', {_VALUE_ = v}) table.insert(res, r) end end return table.concat(res) end function p.check(frame) local args = frame.args local pargs = frame:getParent().args return p._check(args, pargs) end return p 93db6d115d4328d2a5148bb42959105e367b663e Module:Effective protection expiry 828 65 121 2022-02-23T10:59:29Z en>Xaosflux 0 Changed protection settings for "[[Module:Effective protection expiry]]": used in the mediawiki interface / match [[Module:Effective protection level]] ([Edit=Require administrator access] (indefinite) [Move=Require administrator access] (indefinite)) Scribunto text/plain local p = {} -- Returns the expiry of a restriction of an action on a given title, or unknown if it cannot be known. -- If no title is specified, the title of the page being displayed is used. function p._main(action, pagename) local title if type(pagename) == 'table' and pagename.prefixedText then title = pagename elseif pagename then title = mw.title.new(pagename) else title = mw.title.getCurrentTitle() end pagename = title.prefixedText if action == 'autoreview' then local stabilitySettings = mw.ext.FlaggedRevs.getStabilitySettings(title) return stabilitySettings and stabilitySettings.expiry or 'unknown' elseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' then error( 'First parameter must be one of edit, move, create, upload, autoreview', 2 ) end local rawExpiry = mw.getCurrentFrame():callParserFunction('PROTECTIONEXPIRY', action, pagename) if rawExpiry == 'infinity' then return 'infinity' elseif rawExpiry == '' then return 'unknown' else local year, month, day, hour, minute, second = rawExpiry:match( '^(%d%d%d%d)(%d%d)(%d%d)(%d%d)(%d%d)(%d%d)$' ) if year then return string.format( '%s-%s-%sT%s:%s:%s', year, month, day, hour, minute, second ) else error('internal error in Module:Effective protection expiry; malformed expiry timestamp') end end end setmetatable(p, { __index = function(t, k) return function(frame) return t._main(k, frame.args[1]) end end }) return p 9a8c58dc2667232ed08a9b206a5d89ca8150312b Module:Template link general 828 85 161 2022-03-08T08:30:51Z en>Primefac 0 update from sandbox - fixes to _show_result and adding _expand Scribunto text/plain -- This implements Template:Tlg local getArgs = require('Module:Arguments').getArgs local p = {} -- Is a string non-empty? local function _ne(s) return s ~= nil and s ~= "" end local nw = mw.text.nowiki local function addTemplate(s) local i, _ = s:find(':', 1, true) if i == nil then return 'Template:' .. s end local ns = s:sub(1, i - 1) if ns == '' or mw.site.namespaces[ns] then return s else return 'Template:' .. s end end local function trimTemplate(s) local needle = 'template:' if s:sub(1, needle:len()):lower() == needle then return s:sub(needle:len() + 1) else return s end end local function linkTitle(args) if _ne(args.nolink) then return args['1'] end local titleObj local titlePart = '[[' if args['1'] then -- This handles :Page and other NS titleObj = mw.title.new(args['1'], 'Template') else titleObj = mw.title.getCurrentTitle() end titlePart = titlePart .. (titleObj ~= nil and titleObj.fullText or addTemplate(args['1'])) local textPart = args.alttext if not _ne(textPart) then if titleObj ~= nil then textPart = titleObj:inNamespace("Template") and args['1'] or titleObj.fullText else -- redlink textPart = args['1'] end end if _ne(args.subst) then -- HACK: the ns thing above is probably broken textPart = 'subst:' .. textPart end if _ne(args.brace) then textPart = nw('{{') .. textPart .. nw('}}') elseif _ne(args.braceinside) then textPart = nw('{') .. textPart .. nw('}') end titlePart = titlePart .. '|' .. textPart .. ']]' if _ne(args.braceinside) then titlePart = nw('{') .. titlePart .. nw('}') end return titlePart end function p.main(frame) local args = getArgs(frame, { trim = true, removeBlanks = false }) return p._main(args) end function p._main(args) local bold = _ne(args.bold) or _ne(args.boldlink) or _ne(args.boldname) local italic = _ne(args.italic) or _ne(args.italics) local dontBrace = _ne(args.brace) or _ne(args.braceinside) local code = _ne(args.code) or _ne(args.tt) local show_result = _ne(args._show_result) local expand = _ne(args._expand) -- Build the link part local titlePart = linkTitle(args) if bold then titlePart = "'''" .. titlePart .. "'''" end if _ne(args.nowrapname) then titlePart = '<span class="nowrap">' .. titlePart .. '</span>' end -- Build the arguments local textPart = "" local textPartBuffer = "&#124;" local codeArguments = {} local codeArgumentsString = "" local i = 2 local j = 1 while args[i] do local val = args[i] if val ~= "" then if _ne(args.nowiki) then -- Unstrip nowiki tags first because calling nw on something that already contains nowiki tags will -- mangle the nowiki strip marker and result in literal UNIQ...QINU showing up val = nw(mw.text.unstripNoWiki(val)) end local k, v = string.match(val, "(.*)=(.*)") if not k then codeArguments[j] = val j = j + 1 else codeArguments[k] = v end codeArgumentsString = codeArgumentsString .. textPartBuffer .. val if italic then val = '<span style="font-style:italic;">' .. val .. '</span>' end textPart = textPart .. textPartBuffer .. val end i = i + 1 end -- final wrap local ret = titlePart .. textPart if not dontBrace then ret = nw('{{') .. ret .. nw('}}') end if _ne(args.a) then ret = nw('*') .. '&nbsp;' .. ret end if _ne(args.kbd) then ret = '<kbd>' .. ret .. '</kbd>' end if code then ret = '<code>' .. ret .. '</code>' elseif _ne(args.plaincode) then ret = '<code style="border:none;background:transparent;">' .. ret .. '</code>' end if _ne(args.nowrap) then ret = '<span class="nowrap">' .. ret .. '</span>' end --[[ Wrap as html?? local span = mw.html.create('span') span:wikitext(ret) --]] if _ne(args.debug) then ret = ret .. '\n<pre>' .. mw.text.encode(mw.dumpObject(args)) .. '</pre>' end if show_result then local result = mw.getCurrentFrame():expandTemplate{title = addTemplate(args[1]), args = codeArguments} ret = ret .. " → " .. result end if expand then local query = mw.text.encode('{{' .. addTemplate(args[1]) .. string.gsub(codeArgumentsString, textPartBuffer, "|") .. '}}') local url = mw.uri.fullUrl('special:ExpandTemplates', 'wpInput=' .. query) mw.log() ret = ret .. " [" .. tostring(url) .. "]" end return ret end return p c7307fa3959d308a2dd7fd2f5009c1ce6db3d122 THE GRENADA HANDBOOK AND DIRECTORY 1946 0 15 20 2022-03-24T18:55:38Z 74.117.87.8 0 New Entry wikitext text/x-wiki '''AREA AND SITUATION''' GRENADA, the most southerly of the windward group, situated between the parallels of 12, 30 and 11, 58 N. latitude and between 61, 20 and 61, 35 W. longitude. its is about 21 miles in length, 12 miles wide at its breadth, and contains about 120 square miles. It lies 68 miles S.S.W of St. Vincent and 90 miles north of Trinidad and between it and the former island stretches a chain of small islands called the Grenadines. The southernmost of these, embracing Carriacou, Petite Martinique, Isle of Rhonde and others , are included within the colony of Grenada. Carriacou has an area of some 13 square miles. The capital of Grenada, St. George's, is also the sit of the governor of the Windward Islands. '''TOPOGRAPHY''' A topographical description of the island of Grenada ( surveyed by Monsieur Pinel in 1763) by order of Government-By lieut. Daniel Patterson. The original document preserved at the Public Works Department of Grenada. The island is divided into six parishes or Districts, the principle of which is that named '''Basse-Terre''' or '''St. George''' which contains the city, the Fort and Port. Here also lied the ordinary residence of the Governor General, and the Courts of Judicature. The District of St. George is situated on the south part of the island, extending 15.3 miles (4.5 Leagues) along the '''Chemin Royal''' from the '''Riviere Dounce''' to the '''Riviere de Chermin.''' It had fourteen Sugar Plantations. Ten had water-mills: besides a great many Coffee Plantations; but none of these were of consequence, except three or four. All of the Coast of '''Ponte des Salines''' or '''Point Salines''' to the '''Riviere de Chermin,''' was dry barren soil, and little inhabited, neither does if afford any other water than that of Wells or Ponds. The Salt Pond produced a great deal of salt, when carefully managed. The District named '''Quartier du Megrin''' or '''St. David''', lies towards the South-East; its coast forms several Points and some Bays capable of receiving small crafts: It extends 12.8 Miles ( Three and half leagues) from '''Riviere de Chemin''' to the '''Riviere de Crochu,''' which separates it on the North part from the District, '''Du Grand Marquis,''' there are several rivers which runs through it, and supplied Ten Sugar Plantations with sufficiency of water; there was also some considerable Coffee Plantations, and many others of less consequences as being but lately established; it is planted about four thousands paces up the hills ( 1.8Miles) The '''Quartier Du Grand Marquis''' or '''St. Andrew's''', situated towards the East, is the most considerable District, as well for Extent, as for the Number and importance of its Plantations: it is four and half leagues long (15.3 Miles), extending from '''Riviere de Crochu''' to the '''Riviere Antione,''' which separates it on the North side from the District '''Des Sauteurs.''' Lands were granted here, 7,000 paces ( 3.31 Miles) up from the Coast, which are in general good. There were however some, from the Town of '''Grand Marquis''' to the Riviere du Crochu which were indifferent, as they have been over-wrought and these on the heights as you go towards the great pond are cold and for the most part, bad. Several rivers run through this quarter, which supply 23 Plantations with water, twelve which were considerable , on the account of their produce and income. It contains also many large Coffee Plantations c89c706313feca59d95373cc7bc198cc7d3ff79d 21 20 2022-03-24T23:06:40Z Abegail Thomas 31 Added History wikitext text/x-wiki '''AREA AND SITUATION''' GRENADA, the most southerly of the windward group, situated between the parallels of 12, 30 and 11, 58 N. latitude and between 61, 20 and 61, 35 W. longitude. its is about 21 miles in length, 12 miles wide at its breadth, and contains about 120 square miles. It lies 68 miles S.S.W of St. Vincent and 90 miles north of Trinidad and between it and the former island stretches a chain of small islands called the Grenadines. The southernmost of these, embracing Carriacou, Petite Martinique, Isle of Rhonde and others , are included within the colony of Grenada. Carriacou has an area of some 13 square miles. The capital of Grenada, St. George's, is also the sit of the governor of the Windward Islands. '''TOPOGRAPHY''' A topographical description of the island of Grenada ( surveyed by Monsieur Pinel in 1763) by order of Government-By lieut. Daniel Patterson. The original document preserved at the Public Works Department of Grenada. The island is divided into six parishes or Districts, the principle of which is that named '''Basse-Terre''' or '''St. George''' which contains the city, the Fort and Port. Here also lied the ordinary residence of the Governor General, and the Courts of Judicature. The District of St. George is situated on the south part of the island, extending 15.3 miles (4.5 Leagues) along the '''Chemin Royal''' from the '''Riviere Dounce''' to the '''Riviere de Chermin.''' It had fourteen Sugar Plantations. Ten had water-mills: besides a great many Coffee Plantations; but none of these were of consequence, except three or four. All of the Coast of '''Ponte des Salines''' or '''Point Salines''' to the '''Riviere de Chermin,''' was dry barren soil, and little inhabited, neither does if afford any other water than that of Wells or Ponds. The Salt Pond produced a great deal of salt, when carefully managed. The District named '''Quartier du Megrin''' or '''St. David''', lies towards the South-East; its coast forms several Points and some Bays capable of receiving small crafts: It extends 12.8 Miles ( Three and half leagues) from '''Riviere de Chemin''' to the '''Riviere de Crochu,''' which separates it on the North part from the District, '''Du Grand Marquis,''' there are several rivers which runs through it, and supplied Ten Sugar Plantations with sufficiency of water; there was also some considerable Coffee Plantations, and many others of less consequences as being but lately established; it is planted about four thousands paces up the hills ( 1.8Miles) The '''Quartier Du Grand Marquis''' or '''St. Andrew's''', situated towards the East, is the most considerable District, as well for Extent, as for the Number and importance of its Plantations: it is four and half leagues long (15.3 Miles), extending from '''Riviere de Crochu''' to the '''Riviere Antione,''' which separates it on the North side from the District '''Des Sauteurs.''' Lands were granted here, 7,000 paces ( 3.31 Miles) up from the Coast, which are in general good. There were however some, from the Town of '''Grand Marquis''' to the Riviere du Crochu which were indifferent, as they have been over-wrought and these on the heights as you go towards the great pond are cold and for the most part, bad. Several rivers run through this quarter, which supply 23 Plantations with water, twelve which were considerable , on the account of their produce and income. It contains also many large Coffee Plantations,, and many others of less consequences as being but lately established; it is planted about four thousands paces up the hills ( 1.8Miles) The '''Quartier Du Grand Marquis''' or '''St. Andrew's''', situated towards the East, is the most considerable District, as well for Extent, as for the Number and importance of its Plantations: it is four and half leagues long (15.3 Miles), extending from '''Riviere de Crochu''' to the '''Riviere Antione,''' which separates it on the North side from the District '''Des Sauteurs.''' Lands were granted here, 7,000 paces (3.31 Miles) up from the Coast, which are in general good. There were however some, from the Town of '''Grand Marquis''' to the '''Riviere du Crochu''' which were indifferent, as they have been over-wrought and these on the heights as you go towards the great pond are cold and for the most part, bad. Several rivers run through this quarter, which supply 23 Plantations with water, twelve which were considerable, on the account of their produce and income. It contains also many large Coffee Plantations, and a great number of small ones. There is but one single harbor where small craft can ride in safety, as a small island shelters it from the winds, which predominate on this part of the island with such violence, as to render it dangerous for any vessel to approach the coast. '''The Quartier des Sauteurs,''' or '''St. Patrick’s''' situated in the north part of the island, extends four leagues (13.8 Miles) along the '''Chemin Royal''' from the '''Riviere Antoine''' to the '''Riviere de Duquens''' which separates it on the west form the district '''Du Grand Pauvre'''. The lands here are very good, and all granted; but it is not commanded by any high mountains, it has only the great '''Riviere des Sauteurs''' that can supply water-mills. It contains 18 Sugar Plantations, 12 of which yield great produce, and several large Coffee Plantations; small craft may anchor in the ports of '''Des Sauteurs''' and '''Levera.''' The '''Quartier du Grand Pauvre''' or '''St. Mark''', the smallest and least considerable in the island, is situated to the northwest, extending only two leagues (6.9 miles) from the '''Riviere du Quene''', to the '''Ravine Marans''', which separated it on the south side from the district is '''Ance Gouyaves'''. It contains six Sugar Plantations, three of which reside there are poor, and unable to defray the expenses of working the land, which is mountainous; the soil is nevertheless tolerably good. The '''Quartier de l’Ance Gouyave''', or '''St. John''', situated to the west of the island, extends about two and a half leagues (8.6 Miles) from '''Ravina Marans''' to the '''Riviere Deuce'''. This quarter as well as the foregoing one, is but of little importance with regard to the number of its settlements : and though it is watered by several rivers , yet is contains but nine Sugar Plantations, the best of which are much less considerable than those which are on the Windward side of the Island. The land, being great intersected with mountains makes it very difficult to bring the settlements to perfection; There are only three or four Coffee or Cocoa Plantations which are of any consequence: and many of these lately planted on the heights produce very little, as the land is very cold , and requires a great deal of labor to keep it in order. The entire coast from the '''Grand Pauvre''' to the '''Basse Terre''', is of easy access, there being all along, good anchorage. The island of Grenada is in structure a moderately eroded volcanic pile, and is somewhat mountainous. The principle point Morne Ste. Catherine (2,749 feet), rises in the northern part of the island as the centre of a massif surrounded by lesser peaks ridges. South of this massif is a low col, where Belvedere ridge crosses the island, and beyond it the land rises again into a low curving ridge – or system of ridges- running first towards the south and then bending round to the east and north-east. This contains numerous peaks and high points- Fedon’s Camp, Morne Quaqua (2,412 feet)- Mt. Sinai (2,300 Feet) and south east Mountain (2,359 feet)- and embraces several ole crater base one of which is still occupied by a lake known as Grand Etang. From the central mountains the land descends to the sea. This is not strictly any coastal plain, though there are lowlands in the north-east at Levera and in the south-west where a long peninsula runs out to Point Saline. Except in the higher parts of the mountains, slopes are for the most part sufficiently gently to permit of development of agriculture. The Grenadines are based upon a submarine ridge which only submerged to a depth’s about 20 fathoms. The island themselves are evidently highly eroded remnants, as evidenced by the irregular and “piton”- dominated landscapes. '''GEOLOGY''' With the exception of a few beds of limestone’s, which are very small extent, Grenada and the Grenadines are of volcanic origin. Grenada shows clear evidence of a number of distinct phases of volcanism, but for the most part appears to be intermediate in age between St. Lucia and St. Vincent. Volcanic activity is extinct and leaves only a few cold carbonic springs its last traces. Earthquake shocks were felt in 1867 and 1888, both cases centered beneath St. George’s harbor, which is the center of an old crater. Other old craters are still plainly visible near Grand Etang and at Lake Antoine. Much of the erupted matter consisted of massive lavas- basalt, augite-andesite  and hornblende-andesite- which occupy the centre is the island. Coastally the deposits are agglomerate, ash and turf. Small deposits of marine coralliferous limestone sod Pleistocene age occur in the north at an elevation of 600 feet. It is thought possible that Grenada may have been connected to the mainland of South Americas during the Pliocene times. The Grenadines consist of fine-grained volcanic ashes which were originally laid down under the sea.  Carriacou is capped about 600 feet with similar to those of Grenada, indicating a Pleistocene submergence which must completely have drowning these islands. The Grenadines are very deeply eroded. The surface ashes have been worn away to expose a number of residual phases whose hard lava cores stand up as pitons. The island of Grenada is eroded to a moderate extent. The areas have reached based level and slopes have been reduced to intermediate erosional stage of moderate steepness. The agricultural soils have been studied by Hardy, McDonald and Rodriguez (The Cacao soils of Grenada 1932).  Red earth occurs predominantly in the centre of the island and shoal soil around the coast; these both are the result of intense weathering of volcanic rock materials, the former under a region of high rain-falls and the latter under one of low. The profile of the red earth shows a dark brown, humic surface horizon grading imperceptibly into the bright red, clayey parent soil, which is highly acidic, remarkably crumbly, friable and porous down to a great dept. A shoal soil has a A-horizon consisting of a dark humic clay, overlying at quite a shallow depth a B-horizon that has become sealed up hard by illuviation. Neither of these two types is properly a fertile soil, but it would appear that un most areas in Grenada weathering has not proceeded to its final stage-nothing like as far, for example, as in St. Lucia –and the soil are by no means as intractable as in that island. The well-cultivated aspect of Grenada testifies to the productivity of the land. '''HISTORY''' '''1498''' The existence of Grenada was brought to the knowledge of the Old world by Christopher Columbus, who sighted the Island on August 15, 1498, but did not touch at it. On his voyage, which began on May 30, 1498, the first land made by the great navigator was Trinidad, on July 31. He entered the Gulf of Paria from the south, and, after cruising about the shores of Trinidad and the mainland, he passed through the Boca del Dragon, the northern outlet of the gulf, on the afternoon of August 14. The next morning , being the feast of assumption of the virgin, while standing to the northward, he saw to the north-east, many leagues distant, two islands, which he called ‘Assumption’ and ‘ Conception’ the former being Tobago and the latter Grenada. He then preceded westward, discovering Margarita and Cubagua while en route for Hispaniola.            For more than 100 years after its discovery by Columbus the aboriginal inhabitants, who were of the Carib race, were left in undisturbed possession of the island, to which they are said to have been attracted in great numbers on account of the superior hunting and fishing obtainable there as compared with the adjacent islands. The Spaniards were, no doubt , fully occupied with their more important conquests on the American continent and the larger islands of the Caribbean Sea , and as yet other European nations had not joined in the race for acquisition of new territory among fertile beautiful lands. '''1609''' According to a document in the British Museum, written by Major John Scott, historiographer to Charles ii, the first attempt to colonise Grenada was made by a company of London merchant, who equipped three ships and dispatched them with that objective. They reached Grenada on April 1, 1609, and landed 208 colonists, but these were persistently hunted by the Caribs that they were compelled to abandon the settlement and return to England, what was left them arriving in London on December 15, 1609. '''1626''' About the year 1626 both the English and French appear to have set covetous eyes on the unappropriated island of Grenada, and we find it included among the theoretical possessions of the French ‘Company of the Islands of America’, founded in that year by Cardinal Richelieu, while in the following year it was included in the general grant of the Caribbees made to the Earl of Carlisle by King Charles I. Neither nation, however, took any further steps until 1638, when a Frenchman named Polney attempted to effect a landing, but was driven off by the Caribs, who thus secured further immunity from attack for twelve years. 25ed2230d18ab5990bdff76d0c5b026a719e70a4 23 21 2022-03-30T02:08:18Z Abegail Thomas 31 Added detail to the 17th Century up to 1794 wikitext text/x-wiki '''AREA AND SITUATION''' GRENADA, the most southerly of the windward group, situated between the parallels of 12, 30 and 11, 58 N. latitude and between 61, 20 and 61, 35 W. longitude. its is about 21 miles in length, 12 miles wide at its breadth, and contains about 120 square miles. It lies 68 miles S.S.W of St. Vincent and 90 miles north of Trinidad and between it and the former island stretches a chain of small islands called the Grenadines. The southernmost of these, embracing Carriacou, Petite Martinique, Isle of Rhonde and others , are included within the colony of Grenada. Carriacou has an area of some 13 square miles. The capital of Grenada, St. George's, is also the sit of the governor of the Windward Islands. '''TOPOGRAPHY''' A topographical description of the island of Grenada ( surveyed by Monsieur Pinel in 1763) by order of Government-By lieut. Daniel Patterson. The original document preserved at the Public Works Department of Grenada. The island is divided into six parishes or Districts, the principle of which is that named '''Basse-Terre''' or '''St. George''' which contains the city, the Fort and Port. Here also lied the ordinary residence of the Governor General, and the Courts of Judicature. The District of St. George is situated on the south part of the island, extending 15.3 miles (4.5 Leagues) along the '''Chemin Royal''' from the '''Riviere Dounce''' to the '''Riviere de Chermin.''' It had fourteen Sugar Plantations. Ten had water-mills: besides a great many Coffee Plantations; but none of these were of consequence, except three or four. All of the Coast of '''Ponte des Salines''' or '''Point Salines''' to the '''Riviere de Chermin,''' was dry barren soil, and little inhabited, neither does if afford any other water than that of Wells or Ponds. The Salt Pond produced a great deal of salt, when carefully managed. The District named '''Quartier du Megrin''' or '''St. David''', lies towards the South-East; its coast forms several Points and some Bays capable of receiving small crafts: It extends 12.8 Miles ( Three and half leagues) from '''Riviere de Chemin''' to the '''Riviere de Crochu,''' which separates it on the North part from the District, '''Du Grand Marquis,''' there are several rivers which runs through it, and supplied Ten Sugar Plantations with sufficiency of water; there was also some considerable Coffee Plantations, and many others of less consequences as being but lately established; it is planted about four thousands paces up the hills ( 1.8Miles) The '''Quartier Du Grand Marquis''' or '''St. Andrew's''', situated towards the East, is the most considerable District, as well for Extent, as for the Number and importance of its Plantations: it is four and half leagues long (15.3 Miles), extending from '''Riviere de Crochu''' to the '''Riviere Antione,''' which separates it on the North side from the District '''Des Sauteurs.''' Lands were granted here, 7,000 paces ( 3.31 Miles) up from the Coast, which are in general good. There were however some, from the Town of '''Grand Marquis''' to the Riviere du Crochu which were indifferent, as they have been over-wrought and these on the heights as you go towards the great pond are cold and for the most part, bad. Several rivers run through this quarter, which supply 23 Plantations with water, twelve which were considerable , on the account of their produce and income. It contains also many large Coffee Plantations,, and many others of less consequences as being but lately established; it is planted about four thousands paces up the hills ( 1.8Miles) The '''Quartier Du Grand Marquis''' or '''St. Andrew's''', situated towards the East, is the most considerable District, as well for Extent, as for the Number and importance of its Plantations: it is four and half leagues long (15.3 Miles), extending from '''Riviere de Crochu''' to the '''Riviere Antione,''' which separates it on the North side from the District '''Des Sauteurs.''' Lands were granted here, 7,000 paces (3.31 Miles) up from the Coast, which are in general good. There were however some, from the Town of '''Grand Marquis''' to the '''Riviere du Crochu''' which were indifferent, as they have been over-wrought and these on the heights as you go towards the great pond are cold and for the most part, bad. Several rivers run through this quarter, which supply 23 Plantations with water, twelve which were considerable, on the account of their produce and income. It contains also many large Coffee Plantations, and a great number of small ones. There is but one single harbor where small craft can ride in safety, as a small island shelters it from the winds, which predominate on this part of the island with such violence, as to render it dangerous for any vessel to approach the coast. '''The Quartier des Sauteurs,''' or '''St. Patrick’s''' situated in the north part of the island, extends four leagues (13.8 Miles) along the '''Chemin Royal''' from the '''Riviere Antoine''' to the '''Riviere de Duquens''' which separates it on the west form the district '''Du Grand Pauvre'''. The lands here are very good, and all granted; but it is not commanded by any high mountains, it has only the great '''Riviere des Sauteurs''' that can supply water-mills. It contains 18 Sugar Plantations, 12 of which yield great produce, and several large Coffee Plantations; small craft may anchor in the ports of '''Des Sauteurs''' and '''Levera.''' The '''Quartier du Grand Pauvre''' or '''St. Mark''', the smallest and least considerable in the island, is situated to the northwest, extending only two leagues (6.9 miles) from the '''Riviere du Quene''', to the '''Ravine Marans''', which separated it on the south side from the district is '''Ance Gouyaves'''. It contains six Sugar Plantations, three of which reside there are poor, and unable to defray the expenses of working the land, which is mountainous; the soil is nevertheless tolerably good. The '''Quartier de l’Ance Gouyave''', or '''St. John''', situated to the west of the island, extends about two and a half leagues (8.6 Miles) from '''Ravina Marans''' to the '''Riviere Deuce'''. This quarter as well as the foregoing one, is but of little importance with regard to the number of its settlements : and though it is watered by several rivers , yet is contains but nine Sugar Plantations, the best of which are much less considerable than those which are on the Windward side of the Island. The land, being great intersected with mountains makes it very difficult to bring the settlements to perfection; There are only three or four Coffee or Cocoa Plantations which are of any consequence: and many of these lately planted on the heights produce very little, as the land is very cold , and requires a great deal of labor to keep it in order. The entire coast from the '''Grand Pauvre''' to the '''Basse Terre''', is of easy access, there being all along, good anchorage. The island of Grenada is in structure a moderately eroded volcanic pile, and is somewhat mountainous. The principle point Morne Ste. Catherine (2,749 feet), rises in the northern part of the island as the centre of a massif surrounded by lesser peaks ridges. South of this massif is a low col, where Belvedere ridge crosses the island, and beyond it the land rises again into a low curving ridge – or system of ridges- running first towards the south and then bending round to the east and north-east. This contains numerous peaks and high points- Fedon’s Camp, Morne Quaqua (2,412 feet)- Mt. Sinai (2,300 Feet) and south east Mountain (2,359 feet)- and embraces several ole crater base one of which is still occupied by a lake known as Grand Etang. From the central mountains the land descends to the sea. This is not strictly any coastal plain, though there are lowlands in the north-east at Levera and in the south-west where a long peninsula runs out to Point Saline. Except in the higher parts of the mountains, slopes are for the most part sufficiently gently to permit of development of agriculture. The Grenadines are based upon a submarine ridge which only submerged to a depth’s about 20 fathoms. The island themselves are evidently highly eroded remnants, as evidenced by the irregular and “piton”- dominated landscapes. '''GEOLOGY''' With the exception of a few beds of limestone’s, which are very small extent, Grenada and the Grenadines are of volcanic origin. Grenada shows clear evidence of a number of distinct phases of volcanism, but for the most part appears to be intermediate in age between St. Lucia and St. Vincent. Volcanic activity is extinct and leaves only a few cold carbonic springs its last traces. Earthquake shocks were felt in 1867 and 1888, both cases centered beneath St. George’s harbor, which is the center of an old crater. Other old craters are still plainly visible near Grand Etang and at Lake Antoine. Much of the erupted matter consisted of massive lavas- basalt, augite-andesite  and hornblende-andesite- which occupy the centre is the island. Coastally the deposits are agglomerate, ash and turf. Small deposits of marine coralliferous limestone sod Pleistocene age occur in the north at an elevation of 600 feet. It is thought possible that Grenada may have been connected to the mainland of South Americas during the Pliocene times. The Grenadines consist of fine-grained volcanic ashes which were originally laid down under the sea.  Carriacou is capped about 600 feet with similar to those of Grenada, indicating a Pleistocene submergence which must completely have drowning these islands. The Grenadines are very deeply eroded. The surface ashes have been worn away to expose a number of residual phases whose hard lava cores stand up as pitons. The island of Grenada is eroded to a moderate extent. The areas have reached based level and slopes have been reduced to intermediate erosional stage of moderate steepness. The agricultural soils have been studied by Hardy, McDonald and Rodriguez (The Cacao soils of Grenada 1932).  Red earth occurs predominantly in the centre of the island and shoal soil around the coast; these both are the result of intense weathering of volcanic rock materials, the former under a region of high rain-falls and the latter under one of low. The profile of the red earth shows a dark brown, humic surface horizon grading imperceptibly into the bright red, clayey parent soil, which is highly acidic, remarkably crumbly, friable and porous down to a great dept. A shoal soil has a A-horizon consisting of a dark humic clay, overlying at quite a shallow depth a B-horizon that has become sealed up hard by illuviation. Neither of these two types is properly a fertile soil, but it would appear that un most areas in Grenada weathering has not proceeded to its final stage-nothing like as far, for example, as in St. Lucia –and the soil are by no means as intractable as in that island. The well-cultivated aspect of Grenada testifies to the productivity of the land. '''HISTORY''' '''1498''' The existence of Grenada was brought to the knowledge of the Old world by Christopher Columbus, who sighted the Island on August 15, 1498, but did not touch at it. On his voyage, which began on May 30, 1498, the first land made by the great navigator was Trinidad, on July 31. He entered the Gulf of Paria from the south, and, after cruising about the shores of Trinidad and the mainland, he passed through the Boca del Dragon, the northern outlet of the gulf, on the afternoon of August 14. The next morning , being the feast of assumption of the virgin, while standing to the northward, he saw to the north-east, many leagues distant, two islands, which he called ‘Assumption’ and ‘ Conception’ the former being Tobago and the latter Grenada. He then preceded westward, discovering Margarita and Cubagua while en route for Hispaniola.            For more than 100 years after its discovery by Columbus the aboriginal inhabitants, who were of the Carib race, were left in undisturbed possession of the island, to which they are said to have been attracted in great numbers on account of the superior hunting and fishing obtainable there as compared with the adjacent islands. The Spaniards were, no doubt , fully occupied with their more important conquests on the American continent and the larger islands of the Caribbean Sea , and as yet other European nations had not joined in the race for acquisition of new territory among fertile beautiful lands. '''1609''' According to a document in the British Museum, written by Major John Scott, historiographer to Charles ii, the first attempt to colonize Grenada was made by a company of London merchant, who equipped three ships and dispatched them with that objective. They reached Grenada on April 1, 1609, and landed 208 colonists, but these were persistently hunted by the Caribs that they were compelled to abandon the settlement and return to England, what was left them arriving in London on December 15, 1609. '''1626''' About the year 1626 both the English and French appear to have set covetous eyes on the unappropriated island of Grenada, and we find it included among the theoretical possessions of the French ‘Company of the Islands of America’, founded in that year by Cardinal Richelieu, while in the following year it was included in the general grant of the Caribbees made to the Earl of Carlisle by King Charles I. Neither nation, however, took any further steps until 1638, when a Frenchman named Polney attempted to effect a landing, but was driven off by the Caribs, who thus secured further immunity from attack for twelve years. '''1650''' In 1650, M.M Houel and Du Parquet, shareholders of the French company above referred to purchased Martinique, St. Lucia and Grenada from the company for sum equivalent to 1,600''i.''and, after establishing himself at Martinique, Da Parquet turned his attempts to Grenada, where he landed in June of that year with a strong following of 200 adventures. Whether they were overawed by the force which accompanied him, or whether they their simple minds were attracted by the by the trinkets and gowgaw of which he made the liberal presents, the Caribs made no resistance to Du Parquet settlement, and, according to Peres Du Terte, the island was ‘fair chase’ for ‘some knives and hatchets and a large quantity of glass beads, besides two bottles of brandy for the chief himself.            The colony was founded on a strip of land which in those days and certainly for fifty-five years afterwards, projected from the cliff known as ‘Ballast Ground’ on the eastern side of the entrance to St. George’s harbor, across the mouth of the ‘Lagoon’, which was not as now, an arm of the sea, but a deep lake of brackish water formed by the rivulets on the ‘Springs’ land and which overflowed its bar of sand after heavy rain, just as the embouchures of others streams in the island now do. Upon this site the French erected their huts and large wooden building brought in sections with them from Martinique, which they surrounded with stockade and defended with two canons, as a fortress within which they might retire if they were attacked by the Caribs. In the front of the settlement on the west was excellent anchorage for large ships, particularly in the inlet between the ‘Spout’ and the opposite point at the north. At the present day there is hardly 3 feet along this part of the harbor, and the site of the old town is a coral reef across the mouth of the Lagoon. There is no record in the colony of the convulsion which must have caused its present connection, but there can be little doubt that the Carenage was once the crater of a volcano, which, as will be seen, so lately as in 1807 and in 1902 gave proof of its existence. '''1651''' After establishing his colony Du Parquet left a relation of his named Le Compte, to govern Grenada on his behalf, but, In February 1651 the Caribs, probably recognizing the danger to which they had exposed themselves by their too easy yielding of a footing on the island to the French, began hostilities, and Du Parquet being determined not to lose his hold on the island, sent Le Compte a reinforcement of 300 men, with instructions to extirpate the aborigines. The French settlement was on the southern sea board, which they term Basseterre, the remainder of the island being designated the Cabesterre. Far from Le Compte at once obeying D Parquet orders to wipe out the Caribs, he gave them yet another chance. Only when the aborigines had again exhibited their perfidy and apparent inability to keep the peace and stop killing those who they had ceded the island did Le Compte a have recourse to extreme measures. He then devoted himself to his horrible task with zeal and energy, and his unhappy antagonists, not being able to cope with his followers on account of the superior weapons of the latter area of their armor, which effectively protected them from the wretch flint hatchets and wooden spears, succumbed in the unequal struggle were completely driven out of Basseterre. The last stand they made at this part of the campaign was at a precipice on the extreme north of the island , called by the French, in memory of the awful tragedy there enacted, ‘Le Morne des Sauteurs, or ‘Leapers’ Hill’, a name which, corrupted locally into ‘Sotiare,’ the town there located bears to the present day. A French Narrator this describes the incident: ‘ The savages were being hard pressed, retired to the summit of a small promontory, which was surrounded by frightful precipices and accessible by only a narrow and difficult path, the opening to which they had been extremely careful to keep concealed. The French, having succeeded at last in discovering the secret passage, broke in upon them by surprise. They fought vigorously, but the savages were completely defeated, and those who remained, about forty in numbers precipitated themselves from the top of the rock rather than surrender.            This closed the first part of the war of extermination, the Caribs, however, the remaining in possession of Cabesterre, where at first the French seemed disposed to leave them; but, burning with natural desire to avenge their wrongs, they soon broke up the temporary peace by raids on the settlements, and by killing all of the colonist who fell their way. Le Compte, therefore, determined to make an end to them, and, collecting his forces, marched in Basseterre, and day break surprised their head quarters, where the greatest number of them was assembled, and put them to the sword without regard to age or sex. Following his success with vigor Le Compte carried fire and sword throughout Cabesterre, and reduced the Caribs to such a small number that they never again disturbed the peace of the colony. Although few were in existence in St. Marks valley and other parts of the Cabesterre as late as 1705.            The complete subjugation of the island was, however, accompanied by the death of Le Compte, who was drowned when returning to the Basseterre from his victorious expedition. He was succeeded in the Government by M. Louis de Cacqueray, Sieur de Val-meniere, who experienced some trouble in assuming the reins of Government, as there were several officers among the colonist who conceived they had a better right to the post. These resorted to arms, but De Valmeniere was victorious and the leader of the opposition party, Lefont, only escaped execution by suicide. His adherents were banished, but their properties were not confiscated. '''1657   ''' The new Governor appears to have conducted the affairs of the infant colony with much tact and judgment, and under his direction made substantial progress for some time. Du Parquet, having suffered much in his purse of expenses of the Carib war, found it necessary to sell the island, and in 1657 it became the property of the Comte de Cerillac, who paid for it about 1,890''I''. The Governor appointed by the new proprietor is said to be ‘a man of brutal manners’, and he rendered himself intolerable to the colonists, accustomed to as they were to the mild and genial sway of De Val-meniere. The more respectable inhabitants emigrated to Martinique, a proceeding which so irritated the Governor that his tyranny became unbearable, and the colonists rose in arms against him, effected his capture, put him through a form of trial, and condemned him to be hanged. The wretched man succeeded, by claiming noble origin, in getting sentence of hanging changed to beheading, but at the last moment, finding that they had no skillful executioner, the rebels shot him. '''1664''' An Order in the Council was made by the King of France on April 17, 1664, transferring the rights of the ‘Company of the island of America’ to the new French West Indies Company, and M. de Val-meniere was appointed special Commissioner to give effect to the Order. He arrived in Grenada on November 22, and found the colonist in great distress after recent events. He readdressed their grievances, made the Comte de Cerillac leave the island, appointed M. Vincent to the Governor, and departed on November 29. '''1665''' In 1665 the Comte de Cerillac appears to have been paid his rights in Grenada 10,000 crowns. '''1666''' In 1666 an armed expedition was sent by M. Vincent from Grenada to Trinidad, Where it is said to have captured the fort in a ‘discreditable ruse’ '''1674  '''  Upon the dissolution of the French West Indian Company, in the royal edict in December 1674, Grenada passed under the domination of the French crown. '''1700   ''' For the next eighty-eight years the French colony, notwithstanding many wars and rumors around it , appears to have enjoyed the blessings of peace and a measure of prosperity, which is evidenced by the fact that and an enumeration of the people and their properties taken in the 1700 showed a population of 257 whites 53 Free colored persons, and 525 slaves who were employed on 3 Sugar Estates and 52 Indigo plantations, Their livestock consisting of horses and 569 cattle; while a similar census in 1,753 showed the following increases: Population – 1,263 whites, 175 free colored persons, 11,991 Slaves; live-stock- 2,298 horses and mules, 2,556 cattle, 3,278 sheep, 902 goats, 331 hogs; cultivation 83- sugar estate, 2,725,600 coffee trees, 150,300 cocoa trees and 800 cotton trees. Owing, however in the absence of authentic records for this period, very little can be stated of the colony’s history in those years.               The condition of the colon in the early years of the eighteenth century me be gathered from the following remarks of an eye witness, Père Labat, a priest of the Dominican Order, who spent five days on the island September, 1700, and who seems to have a poor opinion of the colonizing capacity of his compatriots. He writes: ‘ The English know better than we how to profit by natural advantages . If Grenada belonged to them, it would long since have changed its aspect, and have become a rich and powerful colony whereas, up to the present time, we have not reaped and of the benefits which ought to have been derived from it, and after a many years of possession we behold it still no better than it was when M. Du parquet purchased it from the savages.’ '''1705''' In 1705, M. De Bellair bring the Governor, the town was removed from its original site to the promontory on the western side of the harbor, where it now stands, and in that and the following year Fort George was built from the plans and under direction of M. de Caillus, ‘ Engineer-General  of the American Islands and Territory Firma’. A map by this officer showing the town and fort, the site of the old town appears to have been Pot Louis, and the new town was styled Fort Royal, probably after the erection of the protecting fort, and retained that name up to the first English occupation in 1763, when it was named St. George’s and the citadel became Fort George. '''1714  ''' The cultivation of cocoa, coffee and cotton was commenced in 1714, in which year it is recorded that vessels trading between Martinique and the Spanish Main began to call at Grenada for water and supplies, giving a great impetus to trade. It is worthy of note that tobacco which was grown on the island at that period is said to have been of such superior quality that is realized double and treble the price of that grown in the other islands. '''1739''' In 1738, a hospital for the care and treatment of the sick and indigent persons was established In St. George’s, near the St. John’s River, and endowed with proceeds of the cultivation of the adjoining sugar estates. '''1756      ''' In 1756 war was declared between Great Britain and France. '''1761''' Admiral Rodney arrived in the West Indies at the close of 1761 with fleet of 18 ships of the line, and landed forces under the command of General Monekton, of 10,000 men. '''1762  '''   Upon the surrender of Martinique to him to February 4, 1762 he dispatched a squadron to Grenada under Commodore Swanton, whereupon the French surrendered on capitulation to that officer, and the passed under the British dominion, the administration of the Government being temporary vested in Lieutenant-Governor George Scott of Dominica. '''1763   '''     In the following year Grenada and the Grenadines were, by the 9<sup>th</sup> article of the treaty of Peace signed at Paris on February 10, ceded to Great Britain, and on October 7, by Royal Proclamation of George III, it was announced that letters patent had been issued creating the Government of Grenada, ‘comprehending the island of that name, together with the Grenadines, and the islands of Dominica, St. Vincent and Tobago,’ and providing for Councils and Assemblies of the representative of people therein, ‘ in such manner an form as is used and directed in those colonies , and provinces of America’ then under the Government of the British Crown; empowering also the legislature so created to pass laws as ‘near as may be agreeable to the laws of England,’ and authorizing the Governor to constitute courts of justice in the colonies, with right to appeal to the Privy Council of Great Britain. It should be here be noted that at the time of the cession the French were allowed to remove all public documents to Martinique, so that there are no records in the colony dating before 1763. This proceeding appears to have been provided for by the 22<sup>nd</sup> article of the Treaty of Paris. '''1764        ''' It was not until December 13, 1764 that the first Governor, General Robert Melvill, arrived in Grenada. He at once, under his instructions for the king, created a General Council for all the Colonies comprised within his Government, declared that the laws of Great Britain were in force in Grenada ‘as far as the nature and circumstances of the colony will admit,’ and enacted certain ordinances with the advice of his Council. Under the authority of royal letters patent dated July 20, 1764, he imposed an export duty of 4 ½ per cent on the value of produce exported, to be paid to the British Government in lieu of the duties formally paid by the colonist to the King of France, a proceeding which was strenuously opposed by the inhabitants. His original instructions were to convene one General Assembly for all of the islands of his Government, but not meeting with the support of the other colonies in this project,, Dominica being the first to protest, he established a House of Assembly for Grenada and the Grenadines, consisting of twenty-one members, and later on created similar bodies in the other colonies. It is to be noted that the new French subjects were allowed to vote at elections. '''1766         ''' The first session of Grenada House was opened April 15, 1766, but its career was brief and inglorious, for on April 25 it passed its first Bill, ‘ for the better government of slaves, &c.’ which failed to pass the Council, and a legislative conflict ensued, which ended the House claiming the right to adjourn without the Governor’s leave, as required by the royal instructions and it was thereupon dissolved on May 21, having existed thirty seven days, and new House of Assembly was convened on October 15. A severe earthquake destroyed several sugar works this year, and cause enormous landslides, so that it was impossible for some time to ride around the island. '''1767               ''' On March 19, 1767, The General Council was abolished so far Grenada was concerned, and a Council for Grenada alone was established by direction of the Home Government; a similar step was taken in due course with respect to each of the other colonies of the Grenadines Government. It became Necessary in this course in the course of the year to deposit troops against the runaway slaves, large number elected and made raids on the Plantation and settlers, and inconsequence of the necessity for providing for the numerous prisoners taken, attention was given to the inadequacy of the old French prison, and the erection of the old building known as the Old Common Gaol in St. George’s was commence upon the site of the prison. On March 17 , of this year, an armed schooner of Grenadian Customs( 8 guns and 12 men) captured a French smuggling vessel ( 10 guns and 18 men) after a hard fight. '''1768               ''' On July 26, 1768, Ulysses Fitzmaurice, Lieutenant – Governor of St. Vincent, assumed the Government both General Mevill and Lieutenant- General Gore, the Lieutenant- Governor, being absent from the colony. General Melvill did not resume the Government until 1770. A hurricane is said to have visited the island on August 12, 1768, but it must have been very mild and have done very little damage as there is no official record of it. '''                      ''' On December 31 the constitution of the Legislative Assembly was altered by direction of the Home Government, the number of members being increased to twenty-four and the quorum fixed a eleven; it was further provided that three of the French inhabitants who had taken the oath of allegiance to the King of England might be elected to the House, and they were to be allowed, upon election, to refuse, if they were Roman Catholics, to subscribe to the ‘Test’ as the disavowal of belief in the doctrine of Transubstantiation was called- a most liberal proceeding, regard being had to the spirit of times. These instruction, however, lead to more bitter dissensions in the colony, and, as the king refused to resolve them, the more zealous Protestants among the colonists retaliated by not serving in the Legislature, so that the conduct of the public affairs for many years was the most difficult and complicated, and the progress id the colony was seriously retarded. '''1770               ''' In 1770 a small red ant ( ''Fornica omnivore,L.)'' made its appearance at Petit Havre, now known as Woodford, and, rapidly spreading over the island, severally damaged for the next ten years the sugar-cane cultivation, and lime, lemon and orange trees. This ants had previously appeared in Barbados and Martinique, and was probably imported to Grenada from the latter place from smugglers. An eye witness thus describes the plague: ‘Their numbers were incredible. I have seen the roads colored with them for miles together and so crowded were they were in places that the print of the horse’s feet would appear for a moment or two, until filled up the surrounding multitude. '''1771               ''' In March 1771 General Melvill was succeeded in the general government of the islands by Brigadier- General Leybourne and on December 27 the town of St. George’s, then consisting of woods and houses was completely destroyed by fire, the damage done being estimated at 200,000''Ꙇ'' currency. A census taken this year gave return of 1,661 whites, 415 free colored persons, and 26,211 slaves. Dominica was separated from the Government of Grenada at this date, and created a separated Government under the administration of Sir William Young. '''1774               ''' Lord Mansfield, Chief Justice of England, pronounced judgment against the Crown in Michaelmas Term, 1774, in the matter of the imposition of the 4 ½ per cent export duty, which was accordingly abolished, to the great joy of the colonists. The road to Grenville from St. George’s, by way of the Grand Etang, was commenced this year. '''1775               ''' General Leybourne died at St. Vincent in April 1775 and the Government devolved on Lieutenant- Governor Young of Tobago. On November 1, the greater part of the town of St. George’s was again destroyed by fire, the damage this time being estimated at 500,000''Ꙇ'' currency. In consequence of this second fire a stringent Act was passed by the Legislature with respect to the erection of future buildings in town, which were consequently reconstructed of brick and covered with tiles. '''1776               ''' In 1776, St. Vincent was created a separate Government, the Government of Grenada being limited to Grenada, The Grenadines and Tobago, and Sir George (afterward Lord) McCartney was appointed Governor-in-chief. '''1778               ''' An Act was passed in 1778 providing that if the Home Government would establish a naval dock and dockyard at St. George’s the colony would give a considerable amount of slave labor and materials towards work; but nothing came of the liberal offer, and in the following year the colony passed out of the British into French hands. '''                      ''' The War of American Independence, began in 1775, had in 1778 involved Great Britain in war with France, and in April of that year a large French fleet under the Comte d’Estaing proceeded to New York, Whence after some fighting with the English vessels along the American coasts, he sailed at the end of the year to the relief of St. Lucia, then exposed to attacks from the British under Admiral Barrington and Brigadier- General Meadows. Here he was repulsed by the sea and land, and was obliged on December 30 to leave the island to its fate. He retired to Martinique, was he kept by Admirals Byron and Barrington on the defense for the next five months, during which time, however, he was successfully reinforced by ships and men under Comte de Grasse and M. de LaMotte-Piquet. In June 1779 the British fleets appear to have been compelled to raise their blockade of the French commander by the necessity for protecting a rich convoy of merchantmen which had assembled at St. Kitts and D’Estaing immediately made a dash for St. Vincent, which capitulated to him on June 18. Thence, flushed with success, he sailed to Grenada with his whole fleet of 25 ships of the line and 10 frigates, and with 10,000 troops, arriving there July 2.                        At this junction the entire British force in the colony consisted of 540 men, of whom only 90 were regular soldiers, the remainder being militia and volunteers for ships in the harbor, who had been got together by the special exertions of the Governor, Lord MaCartney, a vote of thanks to whom, for his zeal and energy in the preparation for the defense of the island, was the last action of the House of Assembly. With these scanty forces Lord MaCartney made a brilliant defense; but D’Estaing, having on the evening of his arrival landed a strong force under Count Dillon at Molinier Bay, marched inland, and made a turning movement on St. George’s. After a hard struggle and heavy loss, he carried by assault on the night of the 3<sup>rd</sup> the works on Hospital Hill, which command the town and Fort George, to which the British thereupon retreated to the hurry of their departure. Leaving the guns unspiked. They were at daybreak, next morning directed against Fort George, and the gallant defenders had no alternative but to surrender on the 4<sup>th</sup>, the victor having dictated such insolent terror when the garrison offered to capitulate that the Governor preferring the former course. D’Estaing, who is said to have had a private grudge against the British having been the subject of stricture from the officers of the British army in consequence of having broken his parole in the previous war, there upon gave up St. George’s to plundered by his troops, and sunk nearly all of the vessels then anchor in the Carenage, a well- directed fire from which( especially from H.M.S ‘York’) during the assault on Hospital Hill, had seriously retarded his operations.                        At daybreak on July 6, Admiral Byron made his appearances with a squadron off St. George’s, too late to save the colony; but, notwithstanding that his force was far inferior to that of the French be bravely attached them, with the result that D’Estaing, although wounded, which so dispirited him that he retired during the night under the shelter of the guns of St. George’s. As no attempt was made the following day to attack the British squadron, which although much damaged by the previous day’s fighting, was drawing up to give battle, and as the recapture of the island was impossible with his inferior force, Admiral Byron retired to St. Kitts.                        Grenada was thus once more became an appanage Of the French Crown, and was held as such for the next four and a half years, during which time it appears to have been ruled in the most despotic manner by Comte de Durat as Governor and the British colonist were solely oppressed.                        The authentic records in the colony of the occurrence of this period are very scant, as the French were allowed in 1783 to remove their documents to Martinique, and many of the British records disappeared about the same time, being probably lost or destroyed during the sack of the town and in the unsettled state of the colony.   Directly after their capture the of the island the French, realizing how seriously their advance upon St. George’s and their occupation of the fortification on Hospital hill would have been embarrassing if forts had been in existence in Richmond Hill proceeded to forcibly appropriate the Mount George estate, the property of Honorable William Lucas, and began the erection o a fort there. '''1780'''                On October 10, 1780 Grenada, in common with most of other West Indian Islands, was visit by a hurricane, but it was no so severely felt there as in others, and had one result of great benefit to the colony, as the heavy rainfall destroyed the sugar ants which, in defiance of all efforts to eradicate it, had ravaged the crops of the island for the previous ten years. Nineteen Dutch Ships fully laden with cargo, are said to have been stranded and been destroyed by this cyclone at Grenada. '''1781'''                In 1781 M. Roumé de St. Laurent, a Grenada planter, conceived the idea of persuading the Spanish Government to allow foreign immigration into Trinidad, which was then strenuously prohibited by Spain, and having attained his object in 1783, there was great influx from Grenada, and the other French islands of the French colonists into that beautiful island, and at that time colonized to only a few Spaniards. '''                      ''' By the 8<sup>th</sup> article of the Treaty of Versallies, signed on September 3, 1783, Grenada and the Grenadines were restored to Great Britain, and in January 1784, Lieutenant- Governor Mathew arrived with a commission as Captain-General and the Governor-in –Chief ‘in and over the island of Grenada, and such of the Islands commonly called the Grenadines to the southward of the island of Carriacou, Including that island, and lying between the same and Grenada.’ This de-limitation of the colony is still in force. His intentions included the revival of the Legislature and Courts of Justice on the lines laid down for the Governor Melvill in 1768. The new Governor took prompt steps in those matters, an in re-establishing the Assembly took occasion to revive the privileges formerly granted to the French Roman Catholic inhabitants. The Legislature, on being convened, proceeded to purchase the Mount George estate from the Hon. William Lucas, and to the make liberal grants of slave labor and materials towards the erection of fortification on that part of the estate called Richmond Hill, which commands the town of St. George’s on the east, and its approaches from the east and south. They also voted the sum 20,000''Ꙇ'', to join the body of water known as the ‘Lagoon’ in the inner harbor of St. George’s, but the project was never carried out. The first newspaper in Grenada was published in January of 1784, under the title of ‘The Grenada Chronicle.’ '''1787               ''' The colony was honored in April 1787 by a visit from Prince William Henry, the third son of George III, and afterwards King William IV. The young prince was serving as a naval officer on the frigate ‘Solebay’ at the time, and he was sumptuously entertained by the islanders, upwards of 3,300''Ꙇ'' currency being expended for the purpose. And address was presented to him by the Legislature, and in his reply His Royal Highness referred to the island as ‘the first to be attacked in war on account of her riches and the harbor she possesses, which affords so much shelter in the hurricane months. '''                      ''' St. George’s was made a free port in this year by the Imperial Act 27 Geo. III., cap.27. The produce exported in 1787 was 175,548 cwt. Of sugar, 670,390 gallons of rum, 2,716 cwt. of cocoa, 2,062,427 lb cotton, and 2,810 lb indigo, stated to be worth in all ( including other articles, such as hides, wood ,etc) 614,908''Ꙇ,''and employing for its transport 188 ships of 25,764 tonnage. '''1790'''                The year 1790 witnessed the arrival on November 28 of Dr. Thomas Coke, a Wesleyan missionary, with the object of planting a mission station of the Methodist body in the colony. This gentle-man afterwards wrote a history of the West Indies, which much labor and research, although his dates of events in the early history of Grenada are sadly inaccurate. '''1792'''                On May 15, 1792, there was another severe fire in St. George’s caused by the burning of a vessel in the Carenage, laden with rum, and it destroyed about one-third of the town. A new Election Act was passed u the course of the year abrogating the privileges hither to granted to Roman Catholics by requiring all members of the Legislature to subscribe to the ‘Test’ thus virtually excluding Catholics. '''                      ''' In March of this year, Sir William Young, Bart. M.P spent a week in the colony, and from his diary the following passage is extracted as it describes St. George’s a centuries ago:-                        ‘St. George’s is a handsome town, chiefly built of brick and consists of a good many houses. It is divided by a ridge which, running into the sea, forms on one side the Carenage, and on the other the bay. Thus there is the Bay town, where there is a hand-some square and market place, and the Carenage town, where the chief mercantile houses are settled, the ships lying and-locked and in deep water close to the wharf. On the ridge , just above the row of communication between the towns, stand the church, and on the promontory, or bluff head of the ridge, stands a large old fort built by the Spaniards when in possession of Grenada. It is built freestone, is very substantially, if not scientifically, constructed and contains the entire 45<sup>th</sup> Regiment. The 67<sup>th</sup> Regiments is quartered in the new barracks, and does duty on the new fortifications Richmond Hill, a very strong situation to the east and north-east the town…. The church is plain, with a handsome steeple and a clock given by the present Governor Matthew.’ '''1793'''                In January 1793 General Matthew had successfully ministered the Government for nearly ten years, departed and after a short presidency of the Hon. Samuel Williams, Ninian Home, a low resident in the colony and a former speaker of the House Assembly, arrived from England with a commission as Lieutenant Governor, and was sworn in on January 28. '''          '''             A Wesleyan chapel was erected in St. George’s in this year and in October an Act, which may be termed the Grenada’ September Act’ was enacted, requiring the Governor to summon a fresh House of Assembly every seven years . In 1793 is also noteworthy for the introduction of Breadfruit into the West Indies by Captain Bligh, who brought 300 plants of that valuable tree from Tahiti St. Vincent. Another importation but of different character was a malignant fever brought to Grenada in February from the island of Bulam, on the west coast of Africa in the ship ‘Hankey’. The disease, which was thereafter called ‘ Bulam Fever’ seems to have been akin to , if not identical with, what is known in Africa as ‘Blackwater Fever’ and it rage in the colony with more less severity for the next five years. '''1794               ''' Early in 1974 Mr. Home found it necessary to proclaim martial law in consequence of the outbreak of hostilities between Great Britain and France and the apprehension of descent of enemy upon the colony at any moment; no real preparation was, however made to repel and attack, as will be seen. He also endeavored to prevent the in rush of colored people from the French Islands which began to take place, but in this he was unsuccessful, as subsequent events showed. The colony was in great straits at this point for provisions, as there was a severe drought, and permission had to be given for the importation of foodstuff in American ships, a proceeding then regarded with much disfavor by the Home Government. 57e2d5f95c4f7a528bd7cb191ca0c4bcdd748837 Rivers in Grenada 0 16 22 2022-03-25T16:14:03Z Abegail Thomas 31 Added Rivers in Grenada by Location wikitext text/x-wiki Here is a list of rivers in Grenada. In this list ‘Grenada’ indicates rivers that separate the border among the different parishes on the island. § Antione River – Grenada § Balthazar River- Saint Andrew § Beauséjour River- Saint George § Black Bay River –Saint John § Bon Accord- Saint George § Calabasse River – Saint Patrick § Charlotte River- Saint John § Chemin River- Grenada § Crochu River- Saint Andrew § Douce River – Grenada § Duquesne River – Saint Mark| Saint Patrick § Gaulier River – Saint Mark § Gouyave River- Saint John § Grand Bras River- Saint Andrew § Grand Roy River- Saint John § Great Arm River- Saint Patrick § Great Arm River- Saint John § Great Crayfish River – Saint Mark § Great Palmiste River- Saint John § Great Ravine River – Saint Mark § Great Requin River – Saint David § Great River – Saint Andrew § Great River of Grand Barcolet – Saint Andrew § Grenville River- Saint Andrew § La Chaussée River- Saint David § La Tante River – Saint David § Little Crayfish River- Saint Mark § Marquis River- Saint Andrew § Little Plamiste River- Saint John § Little Requin River – Saint David § Little River – Saint John § Little River of Grand Barcolet –Saint Andrew § Little Saint Andrew River- Saint Andrew § Little Saint Mark River – Saint Mark § Little Saint Patrick River – Saint Patrick § River Loria- Saint Andrew § Maran Rover- Saint John § Marquis River- Saint Andrew § Menere River- Saint Andrew § River Petit Bacaye- Saint David § Red River – Saint John § Saint Francis Rover – Saint Andrew § Saint Johns river – Saint George § Saint Louis River – Saint David § Saint Marks River- Saint Mark § Saint Patrick River – Saint Patrick § Salle River ( East Coast) – Saint Patrick § Salle River ( West Coast )- Saint Patrick § River Saumache- Saint Mark § Silver River- Saint Mark § River Simon- Saint Andrew § Tempé River- Saint George There are no rivers in Carriacou and Petite Martinique 64b691698c057e51cacad46722a83ba368e939e1 Template:Longitem 10 31 53 2022-03-28T00:47:59Z en>Neveselbert 0 +conditional to allow transclusion of default style in other templates wikitext text/x-wiki {{#if:{{{1|}}}|<div style="}} display:inline-block; line-height:1.2em; padding:0.1em 0;{{#if:{{{1|}}}|{{{style|}}}">{{{1}}}</div><includeonly>{{#if:{{{2|}}}|[[Category:Pages using Template:Longitem with unnamed style parameter]]}}</includeonly>}}<noinclude> {{documentation}} </noinclude> 6a40580511715660899f98b06460a45f5a42977b Template:Documentation 10 27 45 2022-03-29T02:14:34Z en>Bsherr 0 consistent with new substitution template format wikitext text/x-wiki {{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}<noinclude> <!-- Add categories to the /doc subpage --> </noinclude> 9e62b964e96c4e3d478edecbfcb3c0338ae8a276 Module:List 828 70 131 2022-04-03T20:52:25Z en>Wugapodes 0 Changed protection settings for "[[Module:List]]": [[WP:High-risk templates|High-risk Lua module]]: Used in MediaWiki interface ([Edit=Require administrator access] (indefinite) [Move=Require administrator access] (indefinite)) Scribunto text/plain -- This module outputs different kinds of lists. At the moment, bulleted, -- unbulleted, horizontal, ordered, and horizontal ordered lists are supported. local libUtil = require('libraryUtil') local checkType = libUtil.checkType local mTableTools = require('Module:TableTools') local p = {} local listTypes = { ['bulleted'] = true, ['unbulleted'] = true, ['horizontal'] = true, ['ordered'] = true, ['horizontal_ordered'] = true } function p.makeListData(listType, args) -- Constructs a data table to be passed to p.renderList. local data = {} -- Classes data.classes = {} if listType == 'horizontal' or listType == 'horizontal_ordered' then table.insert(data.classes, 'hlist hlist-separated') elseif listType == 'unbulleted' then table.insert(data.classes, 'plainlist') end table.insert(data.classes, args.class) -- Main div style data.style = args.style -- Indent for horizontal lists if listType == 'horizontal' or listType == 'horizontal_ordered' then local indent = tonumber(args.indent) indent = indent and indent * 1.6 or 0 if indent > 0 then data.marginLeft = indent .. 'em' end end -- List style types for ordered lists -- This could be "1, 2, 3", "a, b, c", or a number of others. The list style -- type is either set by the "type" attribute or the "list-style-type" CSS -- property. if listType == 'ordered' or listType == 'horizontal_ordered' then data.listStyleType = args.list_style_type or args['list-style-type'] data.type = args['type'] -- Detect invalid type attributes and attempt to convert them to -- list-style-type CSS properties. if data.type and not data.listStyleType and not tostring(data.type):find('^%s*[1AaIi]%s*$') then data.listStyleType = data.type data.type = nil end end -- List tag type if listType == 'ordered' or listType == 'horizontal_ordered' then data.listTag = 'ol' else data.listTag = 'ul' end -- Start number for ordered lists data.start = args.start if listType == 'horizontal_ordered' then -- Apply fix to get start numbers working with horizontal ordered lists. local startNum = tonumber(data.start) if startNum then data.counterReset = 'listitem ' .. tostring(startNum - 1) end end -- List style -- ul_style and ol_style are included for backwards compatibility. No -- distinction is made for ordered or unordered lists. data.listStyle = args.list_style -- List items -- li_style is included for backwards compatibility. item_style was included -- to be easier to understand for non-coders. data.itemStyle = args.item_style or args.li_style data.items = {} for i, num in ipairs(mTableTools.numKeys(args)) do local item = {} item.content = args[num] item.style = args['item' .. tostring(num) .. '_style'] or args['item_style' .. tostring(num)] item.value = args['item' .. tostring(num) .. '_value'] or args['item_value' .. tostring(num)] table.insert(data.items, item) end return data end function p.renderList(data) -- Renders the list HTML. -- Return the blank string if there are no list items. if type(data.items) ~= 'table' or #data.items < 1 then return '' end -- Render the main div tag. local root = mw.html.create('div') for i, class in ipairs(data.classes or {}) do root:addClass(class) end root:css{['margin-left'] = data.marginLeft} if data.style then root:cssText(data.style) end -- Render the list tag. local list = root:tag(data.listTag or 'ul') list :attr{start = data.start, type = data.type} :css{ ['counter-reset'] = data.counterReset, ['list-style-type'] = data.listStyleType } if data.listStyle then list:cssText(data.listStyle) end -- Render the list items for i, t in ipairs(data.items or {}) do local item = list:tag('li') if data.itemStyle then item:cssText(data.itemStyle) end if t.style then item:cssText(t.style) end item :attr{value = t.value} :wikitext(t.content) end return tostring(root) end function p.renderTrackingCategories(args) local isDeprecated = false -- Tracks deprecated parameters. for k, v in pairs(args) do k = tostring(k) if k:find('^item_style%d+$') or k:find('^item_value%d+$') then isDeprecated = true break end end local ret = '' if isDeprecated then ret = ret .. '[[Category:List templates with deprecated parameters]]' end return ret end function p.makeList(listType, args) if not listType or not listTypes[listType] then error(string.format( "bad argument #1 to 'makeList' ('%s' is not a valid list type)", tostring(listType) ), 2) end checkType('makeList', 2, args, 'table') local data = p.makeListData(listType, args) local list = p.renderList(data) local trackingCategories = p.renderTrackingCategories(args) return list .. trackingCategories end for listType in pairs(listTypes) do p[listType] = function (frame) local mArguments = require('Module:Arguments') local origArgs = mArguments.getArgs(frame, { valueFunc = function (key, value) if not value or not mw.ustring.find(value, '%S') then return nil end if mw.ustring.find(value, '^%s*[%*#;:]') then return value else return value:match('^%s*(.-)%s*$') end return nil end }) -- Copy all the arguments to a new table, for faster indexing. local args = {} for k, v in pairs(origArgs) do args[k] = v end return p.makeList(listType, args) end end return p 0d6c114450d0f5b3c1d2171ebeb41ae74f203f88 Template:If empty 10 30 51 2022-04-03T20:56:41Z en>Wugapodes 0 Changed protection settings for "[[Template:If empty]]": [[WP:High-risk templates|Highly visible template]]: used on 2 million pages and permanently cascade protected; matches module protection ([Edit=Require administrator access] (indefinite) [Move=Require administrator access] (indefinite)) wikitext text/x-wiki {{<includeonly>safesubst:</includeonly>#invoke:If empty|main}}<noinclude>{{Documentation}}</noinclude> 745940b7bdde8a1585c887ee4ee5ce81d98461a4 Module:If empty 828 69 129 2022-05-06T04:38:40Z en>Dinoguy1000 0 update from sandbox, per [[Template talk:If empty#Backcompat]] Scribunto text/plain local p = {} function p.main(frame) local args = require('Module:Arguments').getArgs(frame, {wrappers = 'Template:If empty', removeBlanks = false}) local lastk = 0 for k,v in ipairs(args) do if v ~= '' then return v end lastk = k end end return p 4bfc0c7c8bf3b63144db1ea12f2260db00421233 Template:Lorem ipsum 10 32 55 2022-05-31T16:46:13Z en>Gonnym 0 bypass redirect wikitext text/x-wiki {{#ifexpr:{{{1|1}}}>0|{{Lorem ipsum/p-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P1|link={{{link|{{{4|no}}}}}}}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>1|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P2}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>2|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P3}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>3|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P4}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>4|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P5}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>5|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P6}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>6|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P7}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>7|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P8}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>8|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P9}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>9|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P10}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>10|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P11}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>11|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P12}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>12|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P13}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>13|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P14}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>14|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P15}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>15|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P16}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>16|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P17}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>17|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P18}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>18|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P19}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>19|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P20}}{{{3|}}}}}{{Lorem ipsum/p-end-cond|{{{2|}}}|{{{join|}}}}}<includeonly>{{#ifeq:{{{cat|}}}|no||{{Template:Main other|[[Category:Wikipedia articles containing placeholders]]}}}}</includeonly><noinclude> {{Documentation}} <!-- PLEASE ADD CATEGORIES TO THE /doc SUBPAGE, AND INTERWIKIS TO WIKIDATA, THANKS --> </noinclude> 91dbbf4d98efd9dcc6c7e87bedef6086ddcd6e1c Module:High-use 828 68 127 2022-06-12T23:44:07Z en>NguoiDungKhongDinhDanh 0 Comma should not be bolded (via [[:m:User:NguoiDungKhongDinhDanh/CodeAjaxEditor.js|CAE]]) Scribunto text/plain local p = {} -- _fetch looks at the "demo" argument. local _fetch = require('Module:Transclusion_count').fetch local yesno = require('Module:Yesno') function p.num(frame, count) if count == nil then if yesno(frame.args['fetch']) == false then if (frame.args[1] or '') ~= '' then count = tonumber(frame.args[1]) end else count = _fetch(frame) end end -- Build output string local return_value = "" if count == nil then if frame.args[1] == "risk" then return_value = "a very large number of" else return_value = "many" end else -- Use 2 significant figures for smaller numbers and 3 for larger ones local sigfig = 2 if count >= 100000 then sigfig = 3 end -- Prepare to round to appropriate number of sigfigs local f = math.floor(math.log10(count)) - sigfig + 1 -- Round and insert "approximately" or "+" when appropriate if (frame.args[2] == "yes") or (mw.ustring.sub(frame.args[1],-1) == "+") then -- Round down return_value = string.format("%s+", mw.getContentLanguage():formatNum(math.floor( (count / 10^(f)) ) * (10^(f))) ) else -- Round to nearest return_value = string.format("approximately&#x20;%s", mw.getContentLanguage():formatNum(math.floor( (count / 10^(f)) + 0.5) * (10^(f))) ) end -- Insert percentage of pages if that is likely to be >= 1% and when |no-percent= not set to yes if count and count > 250000 and not yesno (frame:getParent().args['no-percent']) then local percent = math.floor( ( (count/frame:callParserFunction('NUMBEROFPAGES', 'R') ) * 100) + 0.5) if percent >= 1 then return_value = string.format("%s&#x20;pages, or roughly %s%% of all", return_value, percent) end end end return return_value end -- Actions if there is a large (greater than or equal to 100,000) transclusion count function p.risk(frame) local return_value = "" if frame.args[1] == "risk" then return_value = "risk" else local count = _fetch(frame) if count and count >= 100000 then return_value = "risk" end end return return_value end function p.text(frame, count) -- Only show the information about how this template gets updated if someone -- is actually editing the page and maybe trying to update the count. local bot_text = (frame:preprocess("{{REVISIONID}}") == "") and "\n\n----\n'''Preview message''': Transclusion count updated automatically ([[Template:High-use/doc#Technical details|see documentation]])." or '' if count == nil then if yesno(frame.args['fetch']) == false then if (frame.args[1] or '') ~= '' then count = tonumber(frame.args[1]) end else count = _fetch(frame) end end local title = mw.title.getCurrentTitle() if title.subpageText == "doc" or title.subpageText == "sandbox" then title = title.basePageTitle end local systemMessages = frame.args['system'] if frame.args['system'] == '' then systemMessages = nil end -- This retrieves the project URL automatically to simplify localiation. local templateCount = ('on [https://linkcount.toolforge.org/index.php?project=%s&page=%s %s pages]'):format( mw.title.getCurrentTitle():fullUrl():gsub('//(.-)/.*', '%1'), mw.uri.encode(title.fullText), p.num(frame, count)) local used_on_text = "'''This " .. (mw.title.getCurrentTitle().namespace == 828 and "Lua module" or "template") .. ' is used '; if systemMessages then used_on_text = used_on_text .. systemMessages .. ((count and count > 2000) and ("''', and " .. templateCount) or ("'''")) else used_on_text = used_on_text .. templateCount .. "'''" end local sandbox_text = ("%s's [[%s/sandbox|/sandbox]] or [[%s/testcases|/testcases]] subpages, or in your own [[%s]]. "):format( (mw.title.getCurrentTitle().namespace == 828 and "module" or "template"), title.fullText, title.fullText, mw.title.getCurrentTitle().namespace == 828 and "Module:Sandbox|module sandbox" or "Wikipedia:User pages#SUB|user subpage" ) local infoArg = frame.args["info"] ~= "" and frame.args["info"] if (systemMessages or frame.args[1] == "risk" or (count and count >= 100000) ) then local info = systemMessages and '.<br/>Changes to it can cause immediate changes to the Wikipedia user interface.' or '.' if infoArg then info = info .. "<br />" .. infoArg end sandbox_text = info .. '<br /> To avoid major disruption' .. (count and count >= 100000 and ' and server load' or '') .. ', any changes should be tested in the ' .. sandbox_text .. 'The tested changes can be added to this page in a single edit. ' else sandbox_text = (infoArg and ('.<br />' .. infoArg .. ' C') or ' and c') .. 'hanges may be widely noticed. Test changes in the ' .. sandbox_text end local discussion_text = systemMessages and 'Please discuss changes ' or 'Consider discussing changes ' if frame.args["2"] and frame.args["2"] ~= "" and frame.args["2"] ~= "yes" then discussion_text = string.format("%sat [[%s]]", discussion_text, frame.args["2"]) else discussion_text = string.format("%son the [[%s|talk page]]", discussion_text, title.talkPageTitle.fullText ) end return used_on_text .. sandbox_text .. discussion_text .. " before implementing them." .. bot_text end function p.main(frame) local count = nil if yesno(frame.args['fetch']) == false then if (frame.args[1] or '') ~= '' then count = tonumber(frame.args[1]) end else count = _fetch(frame) end local image = "[[File:Ambox warning yellow.svg|40px|alt=Warning|link=]]" local type_param = "style" local epilogue = '' if frame.args['system'] and frame.args['system'] ~= '' then image = "[[File:Ambox important.svg|40px|alt=Warning|link=]]" type_param = "content" local nocat = frame:getParent().args['nocat'] or frame.args['nocat'] local categorise = (nocat == '' or not yesno(nocat)) if categorise then epilogue = frame:preprocess('{{Sandbox other||{{#switch:{{#invoke:Effective protection level|{{#switch:{{NAMESPACE}}|File=upload|#default=edit}}|{{FULLPAGENAME}}}}|sysop|templateeditor|interfaceadmin=|#default=[[Category:Pages used in system messages needing protection]]}}}}') end elseif (frame.args[1] == "risk" or (count and count >= 100000)) then image = "[[File:Ambox warning orange.svg|40px|alt=Warning|link=]]" type_param = "content" end if frame.args["form"] == "editnotice" then return frame:expandTemplate{ title = 'editnotice', args = { ["image"] = image, ["text"] = p.text(frame, count), ["expiry"] = (frame.args["expiry"] or "") } } .. epilogue else return require('Module:Message box').main('ombox', { type = type_param, image = image, text = p.text(frame, count), expiry = (frame.args["expiry"] or "") }) .. epilogue end end return p e65a49e327a83e27b6a35ceff8dce344edee0840 Template:Column-generating template families 10 22 35 2022-06-14T10:57:40Z 5.43.78.53 0 wikitext text/x-wiki === Column-generating template families === '''The templates listed here are not interchangeable'''. For example, using {{tl|col-float}} with {{tl|col-end}} instead of {{tl|col-float-end}} would leave a [[HTML]] [[Span and div|"div" (division)]] open, potentially harming any subsequent formatting. <section begin="table" /> {| class="wikitable" style="line-height:1.4em" |+ Column templates |- style="vertical-align:middle;" ! scope="col" | Type ! scope="col" | Family ! scope="col" | {{longitem|Handles wiki <br/>&nbsp;table code?{{sup|{{dagger}}}}}} ! scope="col" | Responsive/<br>Mobile suited ! scope="col" | Start template ! scope="col" | Column divider ! scope="col" | End template |- | rowspan="2" | Float | "Col-float" | {{yes}} | {{yes}} | {{tl|Col-float}} | {{tl|Col-float-break}} | {{tl|Col-float-end}} |- | "Columns-start" | {{yes}} | {{yes}} | {{tl|Columns-start}} | {{tl|Column}} | {{tl|Columns-end}} |- | rowspan="2" | Columns | "Div col" | {{yes}} | {{yes}} | {{tl|Div col}} | – | {{tl|Div col end}} |- | "Columns-list" | {{no}} | {{yes}} | {{tl|Columns-list}} (wraps div col) | – | – |- | Flexbox | "Flex columns" | {{no}} | {{yes}} | {{tl|Flex columns}} | – | – |- | Table | "Col" | {{yes}} | {{no}} | {{tl|Col-begin}}, <br/>{{tl|Col-begin-fixed}} or<br/>{{tl|Col-begin-small}} | {{tl|Col-break}} or<br/>{{tl|Col-2}} .. {{tl|Col-5}} | {{tl|Col-end}} |} {{sup|{{dagger}}}} Can template handle the basic [[Help:Wiki markup|wiki markup]] <code><nowiki>{| | || |- |}</nowiki></code> [[Help:Tables|used to create tables]]? If not, special templates that produce these elements (such as {{tl|(!}}, {{tl|!}}, {{tl|!!}}, {{tl|!-}}, {{tl|!)}})—or [[HTML element|HTML tags]] ({{tag|table}}, {{tag|tr}}, etc.)—need to be used instead.<section end="table" /><noinclude> {{Documentation | content = Used by column template documentation pages to provide links to other column-related templates. [[Category:Multi-column templates| ]] [[Category:Related-topic templates]] }} </noinclude> 83210b3edf5c03586efeeb2e82e5ebaf7b5868d8 Module:Uses TemplateStyles/config 828 89 169 2022-06-16T15:10:06Z en>Pppery 0 Matching reality rather than 2018 me's wishful thinking Scribunto text/plain local cfg = {} -- Don’t touch this line. -- Subpage blacklist: these subpages will not be categorized (except for the -- error category, which is always added if there is an error). -- For example “Template:Foo/doc” matches the `doc = true` rule, so it will have -- no categories. “Template:Foo” and “Template:Foo/documentation” match no rules, -- so they *will* have categories. All rules should be in the -- ['<subpage name>'] = true, -- format. cfg['subpage_blacklist'] = { ['doc'] = true, ['sandbox'] = true, ['sandbox2'] = true, ['testcases'] = true, } -- Sandbox title: if the stylesheet’s title is <template>/<stylesheet>.css, the -- stylesheet’s sandbox is expected to be at <template>/<sandbox_title>/<stylesheet>.css -- Set to nil to disable sandbox links. cfg['sandbox_title'] = 'sandbox' -- Error category: this category is added if the module call contains errors -- (e.g. no stylesheet listed). A category name without namespace, or nil -- to disable categorization (not recommended). cfg['error_category'] = 'Uses TemplateStyles templates with errors' -- Default category: this category is added if no custom category is specified -- in module/template call. A category name without namespace, or nil -- to disable categorization. cfg['default_category'] = 'Templates using TemplateStyles' -- Protection conflict category: this category is added if the protection level -- of any stylesheet is lower than the protection level of the template. A category name -- without namespace, or nil to disable categorization (not recommended). cfg['protection_conflict_category'] = 'Templates using TemplateStyles with a different protection level' -- Hierarchy of protection levels, used to determine whether one protection level is lower -- than another and thus should populate protection_conflict_category. No protection is treated as zero cfg['protection_hierarchy'] = { autoconfirmed = 1, extendedconfirmed = 2, templateeditor = 3, sysop = 4 } -- Padlock pattern: Lua pattern to search on protected stylesheets for, or nil -- to disable padlock check. cfg['padlock_pattern'] = '{{pp-' -- Missing padlock category: this category is added if a protected stylesheet -- doesn’t contain any padlock template (specified by the above Lua pattern). -- A category name without namespace (no nil allowed) if the pattern is not nil, -- unused (and thus may be nil) otherwise. cfg['missing_padlock_category'] = 'Templates using TemplateStyles without padlocks' return cfg -- Don’t touch this line. 58e7a37c44f6ea3f6b8af54a559d696cc7256493 Module:Uses TemplateStyles 828 88 167 2022-06-16T15:13:38Z en>Pppery 0 Matching reality rather than 2018 me's wishful thinking Scribunto text/plain local yesno = require('Module:Yesno') local mList = require('Module:List') local mTableTools = require('Module:TableTools') local mMessageBox = require('Module:Message box') local TNT = require('Module:TNT') local p = {} local function format(msg, ...) return TNT.format('I18n/Uses TemplateStyles', msg, ...) end local function getConfig() return mw.loadData('Module:Uses TemplateStyles/config') end local function renderBox(tStyles) local boxArgs = { type = 'notice', small = true, image = string.format('[[File:Farm-Fresh css add.svg|32px|alt=%s]]', format('logo-alt')) } if #tStyles < 1 then boxArgs.text = string.format('<strong class="error">%s</strong>', format('error-emptylist')) else local cfg = getConfig() local tStylesLinks = {} for i, ts in ipairs(tStyles) do local link = string.format('[[:%s]]', ts) local sandboxLink = nil local tsTitle = mw.title.new(ts) if tsTitle and cfg['sandbox_title'] then local tsSandboxTitle = mw.title.new(string.format( '%s:%s/%s/%s', tsTitle.nsText, tsTitle.baseText, cfg['sandbox_title'], tsTitle.subpageText)) if tsSandboxTitle and tsSandboxTitle.exists then sandboxLink = format('sandboxlink', link, ':' .. tsSandboxTitle.prefixedText) end end tStylesLinks[i] = sandboxLink or link end local tStylesList = mList.makeList('bulleted', tStylesLinks) boxArgs.text = format( mw.title.getCurrentTitle():inNamespaces(828,829) and 'header-module' or 'header-template') .. '\n' .. tStylesList end return mMessageBox.main('mbox', boxArgs) end local function renderTrackingCategories(args, tStyles, titleObj) if yesno(args.nocat) then return '' end local cfg = getConfig() local cats = {} -- Error category if #tStyles < 1 and cfg['error_category'] then cats[#cats + 1] = cfg['error_category'] end -- TemplateStyles category titleObj = titleObj or mw.title.getCurrentTitle() if (titleObj.namespace == 10 or titleObj.namespace == 828) and not cfg['subpage_blacklist'][titleObj.subpageText] then local category = args.category or cfg['default_category'] if category then cats[#cats + 1] = category end if not yesno(args.noprotcat) and (cfg['protection_conflict_category'] or cfg['padlock_pattern']) then local currentProt = titleObj.protectionLevels["edit"] and titleObj.protectionLevels["edit"][1] or nil local addedLevelCat = false local addedPadlockCat = false for i, ts in ipairs(tStyles) do local tsTitleObj = mw.title.new(ts) local tsProt = tsTitleObj.protectionLevels["edit"] and tsTitleObj.protectionLevels["edit"][1] or nil if cfg['padlock_pattern'] and tsProt and not addedPadlockCat then local content = tsTitleObj:getContent() if not content:find(cfg['padlock_pattern']) then cats[#cats + 1] = cfg['missing_padlock_category'] addedPadlockCat = true end end if cfg['protection_conflict_category'] and currentProt and tsProt ~= currentProt and not addedLevelCat then currentProt = cfg['protection_hierarchy'][currentProt] or 0 tsProt = cfg['protection_hierarchy'][tsProt] or 0 if tsProt < currentProt then addedLevelCat = true cats[#cats + 1] = cfg['protection_conflict_category'] end end end end end for i, cat in ipairs(cats) do cats[i] = string.format('[[Category:%s]]', cat) end return table.concat(cats) end function p._main(args, cfg) local tStyles = mTableTools.compressSparseArray(args) local box = renderBox(tStyles) local trackingCategories = renderTrackingCategories(args, tStyles) return box .. trackingCategories end function p.main(frame) local origArgs = frame:getParent().args local args = {} for k, v in pairs(origArgs) do v = v:match('^%s*(.-)%s*$') if v ~= '' then args[k] = v end end return p._main(args) end return p 71ca57c37849f38e3c5ee30061bdae730963e48e Module:Message box/configuration 828 73 137 2022-07-11T18:19:26Z en>Izno 0 add templatestyles, remove a variable or two as a result Scribunto text/plain -------------------------------------------------------------------------------- -- Message box configuration -- -- -- -- This module contains configuration data for [[Module:Message box]]. -- -------------------------------------------------------------------------------- return { ambox = { types = { speedy = { class = 'ambox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'ambox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'ambox-content', image = 'Ambox important.svg' }, style = { class = 'ambox-style', image = 'Edit-clear.svg' }, move = { class = 'ambox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'ambox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'ambox-notice', image = 'Information icon4.svg' } }, default = 'notice', allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'}, allowSmall = true, smallParam = 'left', smallClass = 'mbox-small-left', substCheck = true, classes = {'metadata', 'ambox'}, imageEmptyCell = true, imageCheckBlank = true, imageSmallSize = '20x20px', imageCellDiv = true, useCollapsibleTextFields = true, imageRightNone = true, sectionDefault = 'article', allowMainspaceCategories = true, templateCategory = 'Article message templates', templateCategoryRequireName = true, templateErrorCategory = 'Article message templates with missing parameters', templateErrorParamsToCheck = {'issue', 'fix', 'subst'}, removalNotice = '<small>[[Help:Maintenance template removal|Learn how and when to remove this template message]]</small>', templatestyles = 'Module:Message box/ambox.css' }, cmbox = { types = { speedy = { class = 'cmbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'cmbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'cmbox-content', image = 'Ambox important.svg' }, style = { class = 'cmbox-style', image = 'Edit-clear.svg' }, move = { class = 'cmbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'cmbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'cmbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'cmbox'}, imageEmptyCell = true, templatestyles = 'Module:Message box/cmbox.css' }, fmbox = { types = { warning = { class = 'fmbox-warning', image = 'Ambox warning pn.svg' }, editnotice = { class = 'fmbox-editnotice', image = 'Information icon4.svg' }, system = { class = 'fmbox-system', image = 'Information icon4.svg' } }, default = 'system', showInvalidTypeError = true, classes = {'fmbox'}, imageEmptyCell = false, imageRightNone = false, templatestyles = 'Module:Message box/fmbox.css' }, imbox = { types = { speedy = { class = 'imbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'imbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'imbox-content', image = 'Ambox important.svg' }, style = { class = 'imbox-style', image = 'Edit-clear.svg' }, move = { class = 'imbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'imbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, license = { class = 'imbox-license licensetpl', image = 'Imbox license.png' -- @todo We need an SVG version of this }, featured = { class = 'imbox-featured', image = 'Cscr-featured.svg' }, notice = { class = 'imbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'imbox'}, imageEmptyCell = true, below = true, templateCategory = 'File message boxes', templatestyles = 'Module:Message box/imbox.css' }, ombox = { types = { speedy = { class = 'ombox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'ombox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'ombox-content', image = 'Ambox important.svg' }, style = { class = 'ombox-style', image = 'Edit-clear.svg' }, move = { class = 'ombox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'ombox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'ombox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'ombox'}, allowSmall = true, imageEmptyCell = true, imageRightNone = true, templatestyles = 'Module:Message box/ombox.css' }, tmbox = { types = { speedy = { class = 'tmbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'tmbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'tmbox-content', image = 'Ambox important.svg' }, style = { class = 'tmbox-style', image = 'Edit-clear.svg' }, move = { class = 'tmbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'tmbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'tmbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'tmbox'}, allowSmall = true, imageRightNone = true, imageEmptyCell = true, templateCategory = 'Talk message boxes', templatestyles = 'Module:Message box/tmbox.css' } } b6f0151037e6867b577c8cca32ff297e48697a10 Module:Message box 828 72 135 2022-07-11T18:19:29Z en>Izno 0 add templatestyles, remove a variable or two as a result Scribunto text/plain require('Module:No globals') local getArgs local yesno = require('Module:Yesno') local lang = mw.language.getContentLanguage() local CONFIG_MODULE = 'Module:Message box/configuration' local DEMOSPACES = {talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'} -------------------------------------------------------------------------------- -- Helper functions -------------------------------------------------------------------------------- local function getTitleObject(...) -- Get the title object, passing the function through pcall -- in case we are over the expensive function count limit. local success, title = pcall(mw.title.new, ...) if success then return title end end local function union(t1, t2) -- Returns the union of two arrays. local vals = {} for i, v in ipairs(t1) do vals[v] = true end for i, v in ipairs(t2) do vals[v] = true end local ret = {} for k in pairs(vals) do table.insert(ret, k) end table.sort(ret) return ret end local function getArgNums(args, prefix) local nums = {} for k, v in pairs(args) do local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$') if num then table.insert(nums, tonumber(num)) end end table.sort(nums) return nums end -------------------------------------------------------------------------------- -- Box class definition -------------------------------------------------------------------------------- local MessageBox = {} MessageBox.__index = MessageBox function MessageBox.new(boxType, args, cfg) args = args or {} local obj = {} -- Set the title object and the namespace. obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle() -- Set the config for our box type. obj.cfg = cfg[boxType] if not obj.cfg then local ns = obj.title.namespace -- boxType is "mbox" or invalid input if args.demospace and args.demospace ~= '' then -- implement demospace parameter of mbox local demospace = string.lower(args.demospace) if DEMOSPACES[demospace] then -- use template from DEMOSPACES obj.cfg = cfg[DEMOSPACES[demospace]] elseif string.find( demospace, 'talk' ) then -- demo as a talk page obj.cfg = cfg.tmbox else -- default to ombox obj.cfg = cfg.ombox end elseif ns == 0 then obj.cfg = cfg.ambox -- main namespace elseif ns == 6 then obj.cfg = cfg.imbox -- file namespace elseif ns == 14 then obj.cfg = cfg.cmbox -- category namespace else local nsTable = mw.site.namespaces[ns] if nsTable and nsTable.isTalk then obj.cfg = cfg.tmbox -- any talk namespace else obj.cfg = cfg.ombox -- other namespaces or invalid input end end end -- Set the arguments, and remove all blank arguments except for the ones -- listed in cfg.allowBlankParams. do local newArgs = {} for k, v in pairs(args) do if v ~= '' then newArgs[k] = v end end for i, param in ipairs(obj.cfg.allowBlankParams or {}) do newArgs[param] = args[param] end obj.args = newArgs end -- Define internal data structure. obj.categories = {} obj.classes = {} -- For lazy loading of [[Module:Category handler]]. obj.hasCategories = false return setmetatable(obj, MessageBox) end function MessageBox:addCat(ns, cat, sort) if not cat then return nil end if sort then cat = string.format('[[Category:%s|%s]]', cat, sort) else cat = string.format('[[Category:%s]]', cat) end self.hasCategories = true self.categories[ns] = self.categories[ns] or {} table.insert(self.categories[ns], cat) end function MessageBox:addClass(class) if not class then return nil end table.insert(self.classes, class) end function MessageBox:setParameters() local args = self.args local cfg = self.cfg -- Get type data. self.type = args.type local typeData = cfg.types[self.type] self.invalidTypeError = cfg.showInvalidTypeError and self.type and not typeData typeData = typeData or cfg.types[cfg.default] self.typeClass = typeData.class self.typeImage = typeData.image -- Find if the box has been wrongly substituted. self.isSubstituted = cfg.substCheck and args.subst == 'SUBST' -- Find whether we are using a small message box. self.isSmall = cfg.allowSmall and ( cfg.smallParam and args.small == cfg.smallParam or not cfg.smallParam and yesno(args.small) ) -- Add attributes, classes and styles. self.id = args.id self.name = args.name if self.name then self:addClass('box-' .. string.gsub(self.name,' ','_')) end if yesno(args.plainlinks) ~= false then self:addClass('plainlinks') end for _, class in ipairs(cfg.classes or {}) do self:addClass(class) end if self.isSmall then self:addClass(cfg.smallClass or 'mbox-small') end self:addClass(self.typeClass) self:addClass(args.class) self.style = args.style self.attrs = args.attrs -- Set text style. self.textstyle = args.textstyle -- Find if we are on the template page or not. This functionality is only -- used if useCollapsibleTextFields is set, or if both cfg.templateCategory -- and cfg.templateCategoryRequireName are set. self.useCollapsibleTextFields = cfg.useCollapsibleTextFields if self.useCollapsibleTextFields or cfg.templateCategory and cfg.templateCategoryRequireName then if self.name then local templateName = mw.ustring.match( self.name, '^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$' ) or self.name templateName = 'Template:' .. templateName self.templateTitle = getTitleObject(templateName) end self.isTemplatePage = self.templateTitle and mw.title.equals(self.title, self.templateTitle) end -- Process data for collapsible text fields. At the moment these are only -- used in {{ambox}}. if self.useCollapsibleTextFields then -- Get the self.issue value. if self.isSmall and args.smalltext then self.issue = args.smalltext else local sect if args.sect == '' then sect = 'This ' .. (cfg.sectionDefault or 'page') elseif type(args.sect) == 'string' then sect = 'This ' .. args.sect end local issue = args.issue issue = type(issue) == 'string' and issue ~= '' and issue or nil local text = args.text text = type(text) == 'string' and text or nil local issues = {} table.insert(issues, sect) table.insert(issues, issue) table.insert(issues, text) self.issue = table.concat(issues, ' ') end -- Get the self.talk value. local talk = args.talk -- Show talk links on the template page or template subpages if the talk -- parameter is blank. if talk == '' and self.templateTitle and ( mw.title.equals(self.templateTitle, self.title) or self.title:isSubpageOf(self.templateTitle) ) then talk = '#' elseif talk == '' then talk = nil end if talk then -- If the talk value is a talk page, make a link to that page. Else -- assume that it's a section heading, and make a link to the talk -- page of the current page with that section heading. local talkTitle = getTitleObject(talk) local talkArgIsTalkPage = true if not talkTitle or not talkTitle.isTalkPage then talkArgIsTalkPage = false talkTitle = getTitleObject( self.title.text, mw.site.namespaces[self.title.namespace].talk.id ) end if talkTitle and talkTitle.exists then local talkText if self.isSmall then local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. '#' .. talk) talkText = string.format('([[%s|talk]])', talkLink) else talkText = 'Relevant discussion may be found on' if talkArgIsTalkPage then talkText = string.format( '%s [[%s|%s]].', talkText, talk, talkTitle.prefixedText ) else talkText = string.format( '%s the [[%s#%s|talk page]].', talkText, talkTitle.prefixedText, talk ) end end self.talk = talkText end end -- Get other values. self.fix = args.fix ~= '' and args.fix or nil local date if args.date and args.date ~= '' then date = args.date elseif args.date == '' and self.isTemplatePage then date = lang:formatDate('F Y') end if date then self.date = string.format(" <span class='date-container'><i>(<span class='date'>%s</span>)</i></span>", date) end self.info = args.info if yesno(args.removalnotice) then self.removalNotice = cfg.removalNotice end end -- Set the non-collapsible text field. At the moment this is used by all box -- types other than ambox, and also by ambox when small=yes. if self.isSmall then self.text = args.smalltext or args.text else self.text = args.text end -- Set the below row. self.below = cfg.below and args.below -- General image settings. self.imageCellDiv = not self.isSmall and cfg.imageCellDiv self.imageEmptyCell = cfg.imageEmptyCell -- Left image settings. local imageLeft = self.isSmall and args.smallimage or args.image if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none' or not cfg.imageCheckBlank and imageLeft ~= 'none' then self.imageLeft = imageLeft if not imageLeft then local imageSize = self.isSmall and (cfg.imageSmallSize or '30x30px') or '40x40px' self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage or 'Imbox notice.png', imageSize) end end -- Right image settings. local imageRight = self.isSmall and args.smallimageright or args.imageright if not (cfg.imageRightNone and imageRight == 'none') then self.imageRight = imageRight end -- set templatestyles self.base_templatestyles = cfg.templatestyles self.templatestyles = args.templatestyles end function MessageBox:setMainspaceCategories() local args = self.args local cfg = self.cfg if not cfg.allowMainspaceCategories then return nil end local nums = {} for _, prefix in ipairs{'cat', 'category', 'all'} do args[prefix .. '1'] = args[prefix] nums = union(nums, getArgNums(args, prefix)) end -- The following is roughly equivalent to the old {{Ambox/category}}. local date = args.date date = type(date) == 'string' and date local preposition = 'from' for _, num in ipairs(nums) do local mainCat = args['cat' .. tostring(num)] or args['category' .. tostring(num)] local allCat = args['all' .. tostring(num)] mainCat = type(mainCat) == 'string' and mainCat allCat = type(allCat) == 'string' and allCat if mainCat and date and date ~= '' then local catTitle = string.format('%s %s %s', mainCat, preposition, date) self:addCat(0, catTitle) catTitle = getTitleObject('Category:' .. catTitle) if not catTitle or not catTitle.exists then self:addCat(0, 'Articles with invalid date parameter in template') end elseif mainCat and (not date or date == '') then self:addCat(0, mainCat) end if allCat then self:addCat(0, allCat) end end end function MessageBox:setTemplateCategories() local args = self.args local cfg = self.cfg -- Add template categories. if cfg.templateCategory then if cfg.templateCategoryRequireName then if self.isTemplatePage then self:addCat(10, cfg.templateCategory) end elseif not self.title.isSubpage then self:addCat(10, cfg.templateCategory) end end -- Add template error categories. if cfg.templateErrorCategory then local templateErrorCategory = cfg.templateErrorCategory local templateCat, templateSort if not self.name and not self.title.isSubpage then templateCat = templateErrorCategory elseif self.isTemplatePage then local paramsToCheck = cfg.templateErrorParamsToCheck or {} local count = 0 for i, param in ipairs(paramsToCheck) do if not args[param] then count = count + 1 end end if count > 0 then templateCat = templateErrorCategory templateSort = tostring(count) end if self.categoryNums and #self.categoryNums > 0 then templateCat = templateErrorCategory templateSort = 'C' end end self:addCat(10, templateCat, templateSort) end end function MessageBox:setAllNamespaceCategories() -- Set categories for all namespaces. if self.invalidTypeError then local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort) end if self.isSubstituted then self:addCat('all', 'Pages with incorrectly substituted templates') end end function MessageBox:setCategories() if self.title.namespace == 0 then self:setMainspaceCategories() elseif self.title.namespace == 10 then self:setTemplateCategories() end self:setAllNamespaceCategories() end function MessageBox:renderCategories() if not self.hasCategories then -- No categories added, no need to pass them to Category handler so, -- if it was invoked, it would return the empty string. -- So we shortcut and return the empty string. return "" end -- Convert category tables to strings and pass them through -- [[Module:Category handler]]. return require('Module:Category handler')._main{ main = table.concat(self.categories[0] or {}), template = table.concat(self.categories[10] or {}), all = table.concat(self.categories.all or {}), nocat = self.args.nocat, page = self.args.page } end function MessageBox:export() local root = mw.html.create() -- Add the subst check error. if self.isSubstituted and self.name then root:tag('b') :addClass('error') :wikitext(string.format( 'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.', mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}') )) end local frame = mw.getCurrentFrame() root:wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = self.base_templatestyles }, }) -- Add support for a single custom templatestyles sheet. Undocumented as -- need should be limited and many templates using mbox are substed; we -- don't want to spread templatestyles sheets around to arbitrary places if self.templatestyles then root:wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = self.templatestyles }, }) end -- Create the box table. local boxTable = root:tag('table') boxTable:attr('id', self.id or nil) for i, class in ipairs(self.classes or {}) do boxTable:addClass(class or nil) end boxTable :cssText(self.style or nil) :attr('role', 'presentation') if self.attrs then boxTable:attr(self.attrs) end -- Add the left-hand image. local row = boxTable:tag('tr') if self.imageLeft then local imageLeftCell = row:tag('td'):addClass('mbox-image') if self.imageCellDiv then -- If we are using a div, redefine imageLeftCell so that the image -- is inside it. Divs use style="width: 52px;", which limits the -- image width to 52px. If any images in a div are wider than that, -- they may overlap with the text or cause other display problems. imageLeftCell = imageLeftCell:tag('div'):addClass('mbox-image-div') end imageLeftCell:wikitext(self.imageLeft or nil) elseif self.imageEmptyCell then -- Some message boxes define an empty cell if no image is specified, and -- some don't. The old template code in templates where empty cells are -- specified gives the following hint: "No image. Cell with some width -- or padding necessary for text cell to have 100% width." row:tag('td') :addClass('mbox-empty-cell') end -- Add the text. local textCell = row:tag('td'):addClass('mbox-text') if self.useCollapsibleTextFields then -- The message box uses advanced text parameters that allow things to be -- collapsible. At the moment, only ambox uses this. textCell:cssText(self.textstyle or nil) local textCellDiv = textCell:tag('div') textCellDiv :addClass('mbox-text-span') :wikitext(self.issue or nil) if (self.talk or self.fix) then textCellDiv:tag('span') :addClass('hide-when-compact') :wikitext(self.talk and (' ' .. self.talk) or nil) :wikitext(self.fix and (' ' .. self.fix) or nil) end textCellDiv:wikitext(self.date and (' ' .. self.date) or nil) if self.info and not self.isSmall then textCellDiv :tag('span') :addClass('hide-when-compact') :wikitext(self.info and (' ' .. self.info) or nil) end if self.removalNotice then textCellDiv:tag('span') :addClass('hide-when-compact') :tag('i') :wikitext(string.format(" (%s)", self.removalNotice)) end else -- Default text formatting - anything goes. textCell :cssText(self.textstyle or nil) :wikitext(self.text or nil) end -- Add the right-hand image. if self.imageRight then local imageRightCell = row:tag('td'):addClass('mbox-imageright') if self.imageCellDiv then -- If we are using a div, redefine imageRightCell so that the image -- is inside it. imageRightCell = imageRightCell:tag('div'):addClass('mbox-image-div') end imageRightCell :wikitext(self.imageRight or nil) end -- Add the below row. if self.below then boxTable:tag('tr') :tag('td') :attr('colspan', self.imageRight and '3' or '2') :addClass('mbox-text') :cssText(self.textstyle or nil) :wikitext(self.below or nil) end -- Add error message for invalid type parameters. if self.invalidTypeError then root:tag('div') :addClass('mbox-invalid-type') :wikitext(string.format( 'This message box is using an invalid "type=%s" parameter and needs fixing.', self.type or '' )) end -- Add categories. root:wikitext(self:renderCategories() or nil) return tostring(root) end -------------------------------------------------------------------------------- -- Exports -------------------------------------------------------------------------------- local p, mt = {}, {} function p._exportClasses() -- For testing. return { MessageBox = MessageBox } end function p.main(boxType, args, cfgTables) local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE)) box:setParameters() box:setCategories() return box:export() end function mt.__index(t, k) return function (frame) if not getArgs then getArgs = require('Module:Arguments').getArgs end return t.main(k, getArgs(frame, {trim = false, removeBlanks = false})) end end return setmetatable(p, mt) fd6a8b1a0ac5916465cdf2eb099825f1d006cfba Module:Message box/ombox.css 828 74 139 2022-07-11T18:40:17Z en>Izno 0 and move mbox-small to 720px here as well sanitized-css text/css /* {{pp|small=y}} */ .ombox { margin: 4px 0; border-collapse: collapse; border: 1px solid #a2a9b1; /* Default "notice" gray */ background-color: #f8f9fa; box-sizing: border-box; } /* For the "small=yes" option. */ .ombox.mbox-small { font-size: 88%; line-height: 1.25em; } .ombox-speedy { border: 2px solid #b32424; /* Red */ background-color: #fee7e6; /* Pink */ } .ombox-delete { border: 2px solid #b32424; /* Red */ } .ombox-content { border: 1px solid #f28500; /* Orange */ } .ombox-style { border: 1px solid #fc3; /* Yellow */ } .ombox-move { border: 1px solid #9932cc; /* Purple */ } .ombox-protection { border: 2px solid #a2a9b1; /* Gray-gold */ } .ombox .mbox-text { border: none; /* @noflip */ padding: 0.25em 0.9em; width: 100%; } .ombox .mbox-image { border: none; /* @noflip */ padding: 2px 0 2px 0.9em; text-align: center; } .ombox .mbox-imageright { border: none; /* @noflip */ padding: 2px 0.9em 2px 0; text-align: center; } /* An empty narrow cell */ .ombox .mbox-empty-cell { border: none; padding: 0; width: 1px; } .ombox .mbox-invalid-type { text-align: center; } @media (min-width: 720px) { .ombox { margin: 4px 10%; } .ombox.mbox-small { /* @noflip */ clear: right; /* @noflip */ float: right; /* @noflip */ margin: 4px 0 4px 1em; width: 238px; } } 8fe3df4bb607e699eab2dbd23bd4a1a446391002 Module:Transclusion count/data/D 828 87 165 2022-07-17T05:11:28Z en>Ahechtbot 0 [[Wikipedia:BOT|Bot]]: Updated page. Scribunto text/plain return { ["D&D"] = 3800, ["D&D_to-do"] = 5500, ["D-da"] = 3000, ["DANFS"] = 8400, ["DC-Comics-trademark-copyright"] = 2100, ["DCS_Sri_Lanka"] = 2100, ["DDR"] = 2800, ["DEC"] = 8300, ["DECADE"] = 266000, ["DEN"] = 6500, ["DEU"] = 17000, ["DMC"] = 60000, ["DMCA"] = 1940000, ["DNB"] = 8600, ["DNB-Portal"] = 2100, ["DNB_portal"] = 3900, ["DNK"] = 7600, ["DNZB"] = 3500, ["DOI"] = 3900, ["DOWs"] = 2600, ["DPP"] = 92000, ["DPP/logo"] = 92000, ["DRV_links"] = 3400, ["DWT"] = 2200, ["DYKC"] = 6700, ["DYKF"] = 2100, ["DYK_blue"] = 3400, ["DYK_checklist"] = 9300, ["DYK_conditions"] = 58000, ["DYK_files"] = 2100, ["DYK_header"] = 25000, ["DYK_nompage_links"] = 69000, ["DYK_talk"] = 100000, ["DYK_talk/date"] = 100000, ["DYK_tools"] = 47000, ["DYK_tools/styles.css"] = 47000, ["DYKfile"] = 12000, ["DZA"] = 2600, ["Dab"] = 16000, ["Dablink"] = 2400, ["Dagger"] = 15000, ["Dashboard.wikiedu.org_assignment"] = 4600, ["Dashboard.wikiedu.org_bibliography/guide"] = 2900, ["Dashboard.wikiedu.org_course_header"] = 5200, ["Dashboard.wikiedu.org_course_header/edit-note"] = 5200, ["Dashboard.wikiedu.org_draft_template/about_this_sandbox"] = 5300, ["Dashboard.wikiedu.org_evaluate_article/guide"] = 4300, ["Dashboard.wikiedu.org_peer_review/guide"] = 6500, ["Dashboard.wikiedu.org_sandbox"] = 79000, ["Dashboard.wikiedu.org_student_editor"] = 66000, ["Dashboard.wikiedu.org_student_program_sandbox"] = 78000, ["Dashboard.wikiedu.org_talk_course_link"] = 68000, ["Dashboard.wikiedu.org_user_talk"] = 2200, ["Date"] = 37000, ["Date-mf"] = 36000, ["Date_table_sorting"] = 38000, ["Dated_maintenance_category"] = 2000000, ["Davis_Cup_player"] = 2300, ["Day+1"] = 6800, ["Day-1"] = 8300, ["Dbox"] = 3000, ["Dda"] = 5100, ["Dead_YouTube_links"] = 2900, ["Dead_Youtube_links"] = 2900, ["Dead_link"] = 267000, ["Death-date"] = 11000, ["Death-date_and_age"] = 9800, ["Death_date"] = 8800, ["Death_date_and_age"] = 356000, ["Death_date_and_given_age"] = 2100, ["Death_year_and_age"] = 15000, ["Death_year_category_header"] = 2000, ["Decade"] = 2100, ["Decade_link"] = 32000, ["Decimals"] = 2500, ["Decline"] = 2500, ["Declined"] = 3100, ["Decrease"] = 31000, ["Define"] = 4900, ["Deg2DMS"] = 3300, ["Deletion_review_log_header"] = 5200, ["Deletion_review_log_header/Core"] = 5300, ["Delink"] = 1700000, ["Delink_question_hyphen-minus"] = 277000, ["Delrevxfd"] = 3400, ["Democratic_Party_(US)/meta/shading"] = 14000, ["Description_missing"] = 7700, ["Designation/abbreviation"] = 7900, ["Designation/color"] = 76000, ["Designation/colour"] = 78000, ["Designation/colour2"] = 16000, ["Designation/divbox"] = 27000, ["Designation/text"] = 40000, ["Designation_list"] = 4900, ["Details"] = 5400, ["DetailsLink"] = 5500, ["Detect_singular"] = 14000, ["Deutsche_Bahn_station_codes"] = 2200, ["DfE_performance_tables"] = 4500, ["Diff"] = 30000, ["Diff2"] = 11000, ["Digits"] = 19000, ["Directories_box"] = 3200, ["Disamb"] = 2200, ["Disambig"] = 64000, ["Disambig-Class"] = 12000, ["DisambigProj"] = 12000, ["DisambigProject"] = 150000, ["Disambigproject"] = 5700, ["Disambiguation"] = 211000, ["Disambiguation/cat"] = 210000, ["Disambiguation_needed"] = 2300, ["Disambiguation_page_short_description"] = 341000, ["Discogs_artist"] = 13000, ["Discogs_master"] = 10000, ["Discogs_release"] = 2700, ["Discussion_bottom"] = 11000, ["Discussion_top"] = 12000, ["DisestcatCountry"] = 9300, ["DisestcatCountry/core"] = 9300, ["DisestcatCountryDecade"] = 2600, ["DisestcatUSstate"] = 4800, ["DisestcatUSstate/core"] = 4800, ["Disputed"] = 2200, ["Distinguish"] = 87000, ["Disused_Rail_Start"] = 4000, ["Disused_rail_start"] = 4300, ["Disused_style"] = 4700, ["Div_col"] = 363000, ["Div_col/styles.css"] = 365000, ["Div_col_end"] = 279000, ["Div_col_start"] = 2700, ["Divbox"] = 302000, ["Divbox/styles.css"] = 327000, ["Dividing_line"] = 4100, ["Dmbox"] = 443000, ["Dmbox/styles.css"] = 443000, ["Do_not_move_to_Commons"] = 15000, ["Doc"] = 3300, ["Documentation"] = 82000, ["Documentation_subpage"] = 87000, ["Dog_opentask"] = 3300, ["Doi"] = 24000, ["Doing"] = 3500, ["Don't_edit_this_line"] = 98000, ["Don't_edit_this_line_always_display"] = 425000, ["Don't_edit_this_line_extinct"] = 425000, ["Don't_edit_this_line_link_target"] = 425000, ["Don't_edit_this_line_link_text"] = 425000, ["Don't_edit_this_line_parent"] = 425000, ["Don't_edit_this_line_rank"] = 425000, ["Don't_edit_this_line_refs"] = 98000, ["Don't_edit_this_line_same_as"] = 425000, ["Done"] = 96000, ["Doppelganger"] = 2700, ["Dot"] = 3000, ["Double+single"] = 2300, ["Double-dagger"] = 15000, ["Dr"] = 3400, ["Dr-logno"] = 3400, ["Dr-make"] = 3400, ["Dr-yr"] = 3400, ["Draft_article"] = 2900, ["Draft_article_check"] = 3000, ["Draft_categories"] = 2700, ["Draft_other"] = 115000, ["Draft_topics"] = 24000, ["Drafts_moved_from_mainspace"] = 8700, ["Draw"] = 3400, ["Draw_key"] = 16000, ["Draw_links"] = 8500, ["Drep"] = 3400, ["Drugbankcite"] = 4300, ["Drugbox"] = 7400, ["Drugs.com"] = 3300, ["Ds/editnotice"] = 2300, ["Ds/talk_notice"] = 5400, ["Ds/topics"] = 8200, ["Dsindex"] = 2400, ["Dts"] = 37000, ["Dubious"] = 8000, ["Duck"] = 2700, ["Dummytab"] = 4500, ["Duration"] = 36000, ["Dutch_municipality"] = 2600, ["Dyktalk"] = 43000, ["Dynamic_IP"] = 5800, ["Dynamic_list"] = 8800, ["Module:DYK_checklist"] = 9300, ["Module:DYK_checklist/data"] = 9300, ["Module:DYK_nompage_links"] = 69000, ["Module:Data"] = 144000, ["Module:Date"] = 1290000, ["Module:DateI18n"] = 67000, ["Module:Date_table_sorting"] = 38000, ["Module:DecodeEncode"] = 52000, ["Module:Delink"] = 1820000, ["Module:Detect_singular"] = 1160000, ["Module:Disambiguation"] = 316000, ["Module:Distinguish"] = 87000, ["Module:Documentation"] = 127000, ["Module:Documentation/config"] = 127000, ["Module:Documentation/styles.css"] = 126000, ["Module:Draft_topics"] = 24000, ["Module:Duration"] = 232000, } 8d1a6b12a88b2937c570f162f7a0aef8e64db613 Places where people live in Grenada 0 17 24 2022-07-18T23:35:17Z Wikiricky 1 Created page with " *[[CALIVIGNY]] *[[GOLF COURSE]] *[[LOWER WOBURN]] *[[BRIZAN]] *[[HILLSBOROUGH]] *[[SIX ROADS]] *[[HARVEY VALE]] *[[MT. FANN]] *[[BRUNSWICK]] *[[L'ESTERRE]] *[[LAURISTON]] *..." wikitext text/x-wiki *[[CALIVIGNY]] *[[GOLF COURSE]] *[[LOWER WOBURN]] *[[BRIZAN]] *[[HILLSBOROUGH]] *[[SIX ROADS]] *[[HARVEY VALE]] *[[MT. FANN]] *[[BRUNSWICK]] *[[L'ESTERRE]] *[[LAURISTON]] *[[TOP HILL]] *[[BEAUSEJOUR]] *[[DOVER]] *[[BELAIR]] *[[WINDWARD]] *[[BELLE VUE]] *[[BOGLES]] *[[LIMLAIR]] *[[PROSPECT HALL]] *[[HOPE]] *[[CHURCH STREET, HILLSBOROUGH]] *[[MT. ROYAL]] *[[PETIT MARTINIQUE]] *[[BELMONT]] *[[TELESCOPE]] *[[GEORGE V. STREET]] *[[GRAND BACOLET]] *[[MT. PLEASANT]] *[[MAMMA CANNES]] *[[SEATON JAMES STREET]] *[[SOUBISE]] *[[MARQUIS]] *[[BELLE VUE SOUTH]] *[[CARENAGE]] *[[CANAL ROAD]] *[[CROCHU]] *[[MELDRUM]] *[[POST ROYAL]] *[[HAPPY HILL]] *[[HERMITAGE]] *[[PALMISTE]] *[[CRAIGSTON]] *[[CAFE]] *[[SHENDA]] *[[SALISBURY ROAD]] *[[MT. MORITZ]] *[[FENCE]] *[[FONTENOY]] *[[GRANTON]] *[[MOLINIERE]] *[[BYWAY]] *[[GRAND MAL]] *[[UPPER DEPRADINE STREET]] *[[D LANCE, UPPER DEPRADINE]] *[[THE LIMES]] *[[FREQUENTE]] *[[MORNE ROUGE]] *[[MAHOUT]] *[[ROSE HILL]] *[[MONT TOUTE]] *[[WOODLANDS]] *[[LA FORTUNE]] *[[GRAND ANSE VALLEY]] *[[MORNE FENDUE]] *[[GRAND ANSE]] *[[JEAN ANGLIAS]] *[[SNELL HALL]] *[[GLEBE STREET, SAUTEURS]] *[[MT. HARTMAN]] *[[LANCE AUX EPINES]] *[[MAIN STREET, SAUTEURS]] *[[PLAINS]] *[[MT. ROSE]] *[[GRAND ANSE HOUSING SCHEME]] *[[UPPER WOBURN]] *[[GOLF LANDS]] *[[MARLI]] *[[LA MODE]] *[[MT. CRAVEN]] *[[CAFÉ]] *[[RIVER ROAD]] *[[WILLIAMSON ROAD]] *[[WOOLWICH ROAD]] *[[OLD FORT]] *[[SCOTT STREET]] *[[CALLISTE]] *[[MORTLEY ROAD]] *[[D'ARBEAU]] *[[PARK LANE]] *[[ST. JUILLE STREET]] *[[INDEPENDENCE AVENUE]] *[[CEMETERY HILL]] *[[SANS SOUCI]] *[[LOWER MORNE JALOUX]] *[[GRENVILLE STREET]] *[[MARIAN]] *[[SIMMONS STREET]] *[[BALTHAZAR]] *[[MIRABEAU]] *[[BEAUREGARD]] *[[MORNE LOUNGE]] *[[ST. CLOUDS]] *[[MT. HORNE]] *[[DUNFERMLINE]] *[[FORT JUEDY]] *[[NEW STREET, EDWARD STREET]] *[[UPPER DEPRADINE, UPPER]] *[[PARADISE]] *[[SABB]] *[[LA FILLETTE]] *[[BYELANDS]] *[[PARACLETE]] *[[PLATEAU]] *[[BIRCHGROVE]] *[[GRAND BAY]] *[[GRAND BRAS]] *[[UPPER MORNE JALOUX]] *[[RIVULET LANE]] *[[FORD HILL ROAD]] *[[UPPER CAPITOL]] *[[BELVEDERE]] *[[CONFER]] *[[LYDER]] *[[SPRINGS]] *[[HOPE VALE]] *[[RICHMOND HILL]] *[[LA TASTE]] *[[COCOA ROAD]] *[[LA BORIE]] *[[BAYROAD]] *[[LA POTERIE]] *[[THE BOCAS]] *[[LOWTHER'S LANE]] *[[MORNE DELICE]] *[[MT. AIRY]] *[[CORBEAU TOWN]] *[[ST.PAUL'S]] *[[LUCAS STREET]] *[[ROEBUCK]] *[[TEMPE]] *[[CHERRY HILL]] *[[CREIGHTON]] *[[SPRING GARDEN]] *[[PARADE]] *[[MT. GAY]] *[[PETERSFIELD]] *[[MT. PARNASSUS]] *[[POMME ROSE]] *[[CORINTH]] *[[LA SAGESSE]] *[[BEATON]] *[[PERDMONTEMPS]] *[[UPPER LAURA]] *[[OLD WESTERHALL]] *[[REQUIN]] *[[MINORCA]] *[[WINDSOR FOREST]] *[[THEBAIDE]] *[[PROVIDENCE]] *[[LA CALOHME]] *[[MT. DISIRE]] *[[PEARLS]] *[[ST. JOHNS]] *[[ANNANDALE]] *[[RICHMOND]] *[[LA DIGUE]] *[[CARRUTH]] *[[ST. JAMES]] *[[LOWER HARFORD VILLAGE]] *[[MUNICH]] *[[UNION]] *[[PLEASANCE]] *[[LOWER CAPITOL]] *[[VILLAGE ROAD]] *[[SENDALL STREET]] *[[FENTON VILLAGE]] *[[SIMON]] *[[TRUE BLUE]] *[[VENDOME]] *[[BOCA]] *[[TIVOLI]] *[[BELLEVUE]] *[[NEW HAMPSHIRE]] *[[ADELPHI]] *[[NEW WESTERHALL]] *[[BAILLES BACOLET]] *[[LA FLORETTA]] *[[BELLE-VUE (ABOVE ROAD)]] *[[DUDMAR]] *[[SNUG CORNER]] *[[MARDIGRAS]] *[[BEAULIEU]] *[[ST. GEORGE ESTATE]] *[[CARRIERE]] *[[POINT SALINES]] *[[M B HIGHWAY, POINT SALINES]] *[[DE FAUX]] *[[SYRACUSE]] *[[BELLE ISLE]] *[[LA PASTORA]] *[[L'ESTERRIE]] *[[BAYALEAU]] *[[THE VILLA]] *[[COOKHILL ROAD]] *[[WELLS ROAD]] *[[HOPE CITY]] *[[GRIFFIN LANE]] *[[MADEYS]] *[[RIVER SALLEE]] *[[MT. RICH]] *[[CONSTANTINE]] *[[THE SUMMIT]] *[[THE STONE]] *[[WESTERHALL POINT]] *[[LAGOON ROAD]] *[[GRANLETTE]] *[[FELIX PARK]] *[[MT. SEALEY]] *[[WHITE GUN]] *[[HERMON]] *[[LOWER CONFERENCE]] *[[WOODFORD]] *[[UPPER CONFERENCE]] *[[THE GREENS]] *[[PARK ESTATE]] *[[ST. PAUL'S]] *[[AFRICA]] *[[GOOD HOPE]] *[[TANTEEN TERRACE]] *[[MARRAST HILL]] *[[DEPONTHIEU STREET]] *[[ARCHIBALD AVENUE]] *[[H.A BLAIZE STREET]] *[[QUEEN'S PARK]] *[[MALONEY STREET]] *[[VINCENNES]] *[[MARLMOUNT]] *[[LA TANTE]] *[[LOWER LAURA]] *[[CONTENT]] *[[COOPER'S HILL]] *[[APSLEY HILL]] *[[FOUNTAIN]] *[[WALTHAM]] *[[MARAN]] *[[FIELD STREET]] *[[DIAMOND ESTATE]] *[[NON-PARIEL]] *[[CRUICKSHANK ROAD]] *[[COAST GUARD]] *[[CHARLOTTE VALE]] *[[HARMONY HALL]] *[[STEWAD COTTAGE]] *[[BONAIR]] *[[GROSSPOINT, GROSS POINT VILLA]] *[[DIEGO PIECE]] *[[BONIAR ROAD, BONAIR]] *[[RESOURCE]] *[[DE VILLA]] *[[DIAMOND STREET]] *[[WALTER STREET]] *[[GROSS POINT, GROSS POINT VILLA]] *[[DIXIE]] *[[RETREAT]] *[[ST. DAVID STREET]] *[[NEW GARDENS]] *[[MARIGOT]] *[[GOUYAVE ESTATE]] *[[UPPER DEPRADINE, UPPER]] *[[DOCTOR BELLE]] *[[WINDSOR]] *[[VICTORIA STREET]] *[[CHAPEL ROAD]] *[[MT. CARMEL]] *[[GLADSTONE ROAD]] *[[DURRANT ROAD]] *[[MAULTY]] *[[BELLE-VUE (BELOW ROAD)]] *[[HIGH STREET, SAUTEURS]] *[[MT. ALEXANDER]] *[[GRAND ROY]] *[[PROSPECT]] *[[PEGGYS WHIM, HERMITAGE]] *[[CELESTE]] *[[RED MUD]] *[[BLUGGO]] *[[SAMARITAN]] *[[BEVERLY LANE, MADEYS]] *[[CHANTIMELLE]] *[[COALS GAPS]] *[[MT. WILLIAMS]] *[[AHOMA]] *[[MOYAH]] *[[CROSS STREET, SAUTEURS]] *[[DARVEY]] *[[MT. REUIL]] *[[BLACK FOREST]] *[[BLACK FOREST, VENDOME]] *[[PETITE ESPERANCE]] *[[GRAVEL STREET, VENDOME]] *[[MT. CUMMA]] *[[RADIX, MT. PARNASSUS]] *[[TABOR]] *[[MELROSE]] *[[JONES ROAD]] *[[GRENVILLE VALE]] *[[MC LAINE ALLEY, SAUTEURS]] *[[SAUTEURS]] *[[MEADOW]] *[[BLACK BAY]] *[[DUMFRIES]] *[[UPPER DEPRADINE, GOUYAVE]] *[[BROOKLYN]] *[[EDWARD STREET]] *[[CLOZIER]] *[[CENTRAL DEPRADINE STREET]] *[[ST. PETER STREET]] *[[FLORIDA]] *[[LOWER DEPRADINE STREET]] *[[ST. JOHN STREET]] *[[MT. RUSH]] *[[GREEN STREET]] *[[JUBILEE STREET]] *[[WALKER]] *[[CONCORD]] *[[BROTHERS ESTATE]] *[[BELVIDERE]] *[[CORNET'S WALK]] *[[EDWARD STREET, GOUYAVE]] *[[SCHOOL LANE, GOUYAVE]] *[[DOUGALDSTON]] *[[HILL'S VIEW]] *[[ROSEMOUNT]] *[[LANGTON ROAD, GOUYAVE]] *[[RENNIE]] *[[MT. GRANBY]] *[[COTTON BAILY]] *[[GLEBE STREET, SAUTEURS]] *[[POINTFIELD]] *[[LEVERA]] *[[BOTANICAL GARDENS]] *[[ST. JOHN'S STREET]] *[[LA RESOURCE]] *[[INDUSTRY]] *[[DUQUESNE]] *[[QUEEN STREET]] *[[FAIR FIELD ROAD]] *[[MT. EDGE COMBE]] *[[TUILLIERIES]] *[[PADDOCK]] *[[CHEMIN RIVER]] *[[MT. AGNES]] *[[EPPIN FOREST]] *[[CHAMPFLEURS]] *[[NOELSVILLE]] *[[KAFE BEAU HILL]] *[[BATTLE HILL]] *[[TAYBAKAY]] *[[PERSEVERANCE]] *[[GOUYAVE]] *[[BACK STREET, TEMPE]] *[[CLARKS COAT BAY]] *[[WELCOME]] *[[CALABASH ALLEY]] *[[LA FEMME]] *[[HILL VIEW, GOUYAVE]] *[[NEW STREET, GOUYAVE]] *[[NEW STREET, GOUYAVE]] *[[NEW SREET]] *[[EDWARD STREET, GOUYAVE]] *[[LANGTON ROAD]] *[[VICTORIA ROAD, GOUYAVE]] *[[ST BENOIT STREET, GOUYAVE]] *[[RIVER LANE, GOUYAVE ESTATE]] *[[VICTORIA ROAD, GOUYAVE]] *[[HILLS VIEW, GOUYAVE]] *[[LANGTON ROAD, GOUYAVE]] *[[BOYKE'S LANE]] *[[ST. FRANCIS STREET]] *[[BOYKES LANE, GOUYAVE]] *[[CORNETS WALK, GOUYAVE]] *[[MT. NESBIT]] *[[MITCHELL'S LANE]] *[[MARKET HILL]] *[[OBSERVATORY ROAD]] *[[LONG GUTTER]] *[[COX ALLEY]] *[[BRIGG'S ALLEY]] *[[TANTEEN, TANTEEN TERRACE]] *[[CROSS STREET]] *[[BAIN'S ALLEY]] *[[TYRREL STREET]] *[[CHURCH STREET]] *[[MT. WHELDALE]] *[[THE VILLA, LONG GUTTER]] *[[DE VILLA, BLACKBURN ALLEY]] *[[HADDON SMITH STREET]] *[[BLACKBURN ALLEY]] *[[MUNRO STREET]] *[[GROSS POINT VILLA]] *[[TAYLOR]] *[[RESOURCE, RESOURCE]] *[[HENRY STREET]] *[[GALL STREET]] *[[CHURCH HILL ROAD]] *[[BONAIR ROAD, BONAIR]] *[[CRUICKSHANK ROAD, VICTORIA]] *[[FAIR FIELD ROAD, VICTORIA]] *[[BATHWAY]] *[[BAY ROAD, SAUTEURS]] *[[NULL]] *[[TOP HILL, HERMITAGE]] *[[DUQUESNE, DUQUESNE]] *[[DE BLANDEAU]] *[[CASTIGNE]] *[[GLEBE LAND, SAUTEURS]] *[[MAIN STREET, SAUTEURS]] *[[MAHOUT, SAUTEURS]] *[[UPPER HARFORD VILLAGE]] *[[BLAIZE]] *[[SALISBURY STREET, SAUTEURS]] *[[CALLISTE SETTLEMENT]] *[[GUPO]] *[[HILL TOP, CALIVIGNY]] *[[MT. RODNEY]] *[[DUQUENSE]] *[[LA FORTUNE BRIDGE]] *[[RED HEAD STREET, SAUTEURS]] *[[HIGH ST, SAUTEURS]] *[[DE SILLES]] *[[HILL STREET, SAUTEURS]] *[[QUEEN STREET, VICTORIA]] *[[MUNROE STREET, VICTORIA]] *[[CENTRAL DEPRADINE, GOUYAVE]] *[[DOTHAN ESTATE]] *[[LOWER DEPRADINE, GOUYAVE]] *[[MT. FELIX]] *[[MT. PLASIR]] *[[SCHOOL LANE]] *[[ST. DOMINIC'S ST.]] *[[HILLSVIEW, GOUYAVE]] *[[ST PETERS STREET, GOUYAVE]] *[[ST. BENOIT'S STREET]] *[[VICTORIA ROAD]] *[[ST DOMINIC STREET, GOUYAVE]] *[[FERGUSONS LANE, GOUYAVE]] *[[RADIX]] *[[ST FRANCIS, GOUYAVE]] *[[CORNWALL STREET, SAUTEURS]] *[[HIGH STREET, SAUTEURS]] *[[ST PETERS, GOUYAVE]] *[[THE VILLA, SAUTEURS]] *[[SALISBURY STREET, SAUTEURS]] *[[RED HEAD STREET, SAUTEURS]] *[[RIVER LANE, GOUYAVE]] *[[TRANQUIL LANE]] *[[CHANTILLY, MT. GAY]] *[[UPPER DEPRADINE, GOUYAVE]] *[[MORNE JALOUX]] *[[CHAPEL'S LANE]] *[[MALIGNON]] *[[MC NELLIE ALLEY, SAUTEURS]] *[[SALISBURY RD, SAUTEURS]] *[[REDHEAD ST, SAUTEURS]] *[[MC NELLY ALLEY, SAUTEURS]] *[[CEDARS]] *[[BOCAGE, BONAIR]] *[[BONAIR, NULL]] *[[DIXIE, SPRINGS]] *[[APRES TOUTE]] *[[ST DOMINIC, GOUYAVE]] *[[HIGH GATE, MORNE FENDUE]] *[[ADAM'S ALLEY]] *[[THE VILLA, THE ROCK]] *[[GORE STREET]] *[[MELVILLE STREET]] *[[THE STONES, NEW HAMPSHIRE]] *[[RAVINE, MT. GAY]] *[[MAYANN, CONSTANTINE]] *[[BEN JONES STREET]] *[[CHADDEAU]] *[[QUEEN STREET, ST. JOHN'S]] *[[VINEYARD]] *[[BACK STRRET, TEMPE]] *[[CODRONA]] *[[BACK STREET]] *[[MANGO, NEW HAMPSHIRE]] *[[MT. ANON]] *[[SAMUELS AVENUE]] *[[SEATON BROWNE STREET]] *[[SAMARITAN, DIEGO PIECE]] *[[MUNRO STREET, VICTORIA]] *[[EDGEMOND POINT]] *[[MC NELLIE ALLEY, SAUTEURS]] *[[CHANTILLY, TEMPE]] *[[RED GATE]] *[[VICTORIA]] *[[LA TANTE, GLEBE LAND]] *[[LA CALOME, NEW WESTERHALL]] *[[TOUS CONGO]] *[[PENNY RETREAT]] *[[CARNAL ROAD]] *[[MT ST ERVANS, L'ESTERRIE]] *[[BOCAGE]] *[[MAUCHETTE]] *[[NETTLE POINT]] *[[PETIT BOCAGE]] *[[MON REPOS]] *[[MT. EDGECOMBE]] *[[PETITE BACAYE, NEW]] *[[MARLMOUNT, GLEBE LAND]] *[[DEHAR, GLEBE LAND]] *[[MC NELLY ALLY, SAUTEURS]] *[[TETMUND]] *[[SAUTEURS, MAHOUT]] *[[OTTLEY'S LANE]] *[[10 CIRCULAR DRIVE, FREQUENTE]] *[[THE STONES, GRAND ANSE]] *[[MCNEILLY ALLEY, SAUTEURS]] *[[SUNSET VALLEY, POINT SALINES]] *[[FALL EDGE, GRAND ANSE]] *[[HILLS ROAD]] *[[GREY STONE]] *[[TRYNE ALLEY]] *[[TURTLE BACK DRIVE, LANCE AUX]] *[[HILLSTREET, SAUTEURS]] *[[HARFORD VILLAGE, LOWER]] *[[ST. CYR]] *[[ST DAVID STREET, VICTORIA]] *[[GALL STREET, VICTORIA]] *[[CHANTILLY]] *[[ST JOHN STREET, VICTORIA]] *[[GRAND ETANG ROAD]] *[[REDMUD]] *[[CRUICK SHANK, VICTORIA]] *[[THE STONS, GRAND ANSE]] *[[BAMBOO]] *[[DIAMOND STREET, VICTORIA]] *[[WILLIS]] *[[CLARKES COURT BAY,]] *[[CLARKE COURT BAY, WOODLANDS]] *[[MBHIGHWAY, GRAND ANSE]] *[[M H HIGHWAY, GRAND ANSE]] *[[M B HIGHWAY, GRAND ANSE]] *[[YOUNG STREET]] *[[HILLSBOROUGH STREET]] *[[GREY STONE, BELMONT]] *[[CAFE, WOODLANDS]] *[[MC NEILLY, SAUTEURS]] *[[SLINGER STREET, HADDON SMITH]] *[[BON ACCORD ESTATE]] *[[HALIFAX STREET]] *[[MAHOUT, ROSE HILL]] *[[MAIN STREEET, SAUTEURS]] *[[GLEBE SREET, SAUTEURS]] *[[GLEBLAND, SAUTEURS]] *[[PETITE ETANG]] *[[MAIN-STREET SAUTEURS,]] *[[UPPER CARRIERE]] *[[RED HEAD STREET, LA FORTUNE]] *[[JUMBIE]] *[[MARINE VILLA]] *[[CHANCERY STREET, MUNRO]] *[[DUSTY HIGHWAY, GRAND ANSE]] *[[CAFE, CAFÉ]] *[[MYANN, CONSTANTINE]] *[[SAMUEL AVENUE, CALIVIGNY]] *[[MONGO ROAD, GOUYAVE ESTATE]] *[[RIVER ROAD, MT. RUSH]] *[[CALRKS COURT BAY, WOODLANDS]] *[[COCOA ROAD, MARIAN]] *[[MC NEILLY ALLEY, MARLI]] *[[SLINGER STREET, ST. DAVID]] *[[WHITE HALL, PARK LANE]] *[[GRAND ANSE ESTATE, LANCE AUX]] *[[MT ST ERVANS, LA DIGUE]] *[[MAURICE BISHOP HWY, GRAND]] *[[WATERLOO]] *[[FERGUSON'S LANE]] *[[GLEBE LAND, SAUTEURS]] *[[BAY ROAD, SAUTEURS]] *[[GLEBE STREET, SAUTEURS]] 10b8fde9b26b254da5f66dfe797344c5f5b17b37 25 24 2022-07-18T23:43:08Z Wikiricky 1 added a page description wikitext text/x-wiki This is a list of populated villages, towns, settlements, and streets in Grenada. *[[CALIVIGNY]] *[[GOLF COURSE]] *[[LOWER WOBURN]] *[[BRIZAN]] *[[HILLSBOROUGH]] *[[SIX ROADS]] *[[HARVEY VALE]] *[[MT. FANN]] *[[BRUNSWICK]] *[[L'ESTERRE]] *[[LAURISTON]] *[[TOP HILL]] *[[BEAUSEJOUR]] *[[DOVER]] *[[BELAIR]] *[[WINDWARD]] *[[BELLE VUE]] *[[BOGLES]] *[[LIMLAIR]] *[[PROSPECT HALL]] *[[HOPE]] *[[CHURCH STREET, HILLSBOROUGH]] *[[MT. ROYAL]] *[[PETIT MARTINIQUE]] *[[BELMONT]] *[[TELESCOPE]] *[[GEORGE V. STREET]] *[[GRAND BACOLET]] *[[MT. PLEASANT]] *[[MAMMA CANNES]] *[[SEATON JAMES STREET]] *[[SOUBISE]] *[[MARQUIS]] *[[BELLE VUE SOUTH]] *[[CARENAGE]] *[[CANAL ROAD]] *[[CROCHU]] *[[MELDRUM]] *[[POST ROYAL]] *[[HAPPY HILL]] *[[HERMITAGE]] *[[PALMISTE]] *[[CRAIGSTON]] *[[CAFE]] *[[SHENDA]] *[[SALISBURY ROAD]] *[[MT. MORITZ]] *[[FENCE]] *[[FONTENOY]] *[[GRANTON]] *[[MOLINIERE]] *[[BYWAY]] *[[GRAND MAL]] *[[UPPER DEPRADINE STREET]] *[[D LANCE, UPPER DEPRADINE]] *[[THE LIMES]] *[[FREQUENTE]] *[[MORNE ROUGE]] *[[MAHOUT]] *[[ROSE HILL]] *[[MONT TOUTE]] *[[WOODLANDS]] *[[LA FORTUNE]] *[[GRAND ANSE VALLEY]] *[[MORNE FENDUE]] *[[GRAND ANSE]] *[[JEAN ANGLIAS]] *[[SNELL HALL]] *[[GLEBE STREET, SAUTEURS]] *[[MT. HARTMAN]] *[[LANCE AUX EPINES]] *[[MAIN STREET, SAUTEURS]] *[[PLAINS]] *[[MT. ROSE]] *[[GRAND ANSE HOUSING SCHEME]] *[[UPPER WOBURN]] *[[GOLF LANDS]] *[[MARLI]] *[[LA MODE]] *[[MT. CRAVEN]] *[[CAFÉ]] *[[RIVER ROAD]] *[[WILLIAMSON ROAD]] *[[WOOLWICH ROAD]] *[[OLD FORT]] *[[SCOTT STREET]] *[[CALLISTE]] *[[MORTLEY ROAD]] *[[D'ARBEAU]] *[[PARK LANE]] *[[ST. JUILLE STREET]] *[[INDEPENDENCE AVENUE]] *[[CEMETERY HILL]] *[[SANS SOUCI]] *[[LOWER MORNE JALOUX]] *[[GRENVILLE STREET]] *[[MARIAN]] *[[SIMMONS STREET]] *[[BALTHAZAR]] *[[MIRABEAU]] *[[BEAUREGARD]] *[[MORNE LOUNGE]] *[[ST. CLOUDS]] *[[MT. HORNE]] *[[DUNFERMLINE]] *[[FORT JUEDY]] *[[NEW STREET, EDWARD STREET]] *[[UPPER DEPRADINE, UPPER]] *[[PARADISE]] *[[SABB]] *[[LA FILLETTE]] *[[BYELANDS]] *[[PARACLETE]] *[[PLATEAU]] *[[BIRCHGROVE]] *[[GRAND BAY]] *[[GRAND BRAS]] *[[UPPER MORNE JALOUX]] *[[RIVULET LANE]] *[[FORD HILL ROAD]] *[[UPPER CAPITOL]] *[[BELVEDERE]] *[[CONFER]] *[[LYDER]] *[[SPRINGS]] *[[HOPE VALE]] *[[RICHMOND HILL]] *[[LA TASTE]] *[[COCOA ROAD]] *[[LA BORIE]] *[[BAYROAD]] *[[LA POTERIE]] *[[THE BOCAS]] *[[LOWTHER'S LANE]] *[[MORNE DELICE]] *[[MT. AIRY]] *[[CORBEAU TOWN]] *[[ST.PAUL'S]] *[[LUCAS STREET]] *[[ROEBUCK]] *[[TEMPE]] *[[CHERRY HILL]] *[[CREIGHTON]] *[[SPRING GARDEN]] *[[PARADE]] *[[MT. GAY]] *[[PETERSFIELD]] *[[MT. PARNASSUS]] *[[POMME ROSE]] *[[CORINTH]] *[[LA SAGESSE]] *[[BEATON]] *[[PERDMONTEMPS]] *[[UPPER LAURA]] *[[OLD WESTERHALL]] *[[REQUIN]] *[[MINORCA]] *[[WINDSOR FOREST]] *[[THEBAIDE]] *[[PROVIDENCE]] *[[LA CALOHME]] *[[MT. DISIRE]] *[[PEARLS]] *[[ST. JOHNS]] *[[ANNANDALE]] *[[RICHMOND]] *[[LA DIGUE]] *[[CARRUTH]] *[[ST. JAMES]] *[[LOWER HARFORD VILLAGE]] *[[MUNICH]] *[[UNION]] *[[PLEASANCE]] *[[LOWER CAPITOL]] *[[VILLAGE ROAD]] *[[SENDALL STREET]] *[[FENTON VILLAGE]] *[[SIMON]] *[[TRUE BLUE]] *[[VENDOME]] *[[BOCA]] *[[TIVOLI]] *[[BELLEVUE]] *[[NEW HAMPSHIRE]] *[[ADELPHI]] *[[NEW WESTERHALL]] *[[BAILLES BACOLET]] *[[LA FLORETTA]] *[[BELLE-VUE (ABOVE ROAD)]] *[[DUDMAR]] *[[SNUG CORNER]] *[[MARDIGRAS]] *[[BEAULIEU]] *[[ST. GEORGE ESTATE]] *[[CARRIERE]] *[[POINT SALINES]] *[[M B HIGHWAY, POINT SALINES]] *[[DE FAUX]] *[[SYRACUSE]] *[[BELLE ISLE]] *[[LA PASTORA]] *[[L'ESTERRIE]] *[[BAYALEAU]] *[[THE VILLA]] *[[COOKHILL ROAD]] *[[WELLS ROAD]] *[[HOPE CITY]] *[[GRIFFIN LANE]] *[[MADEYS]] *[[RIVER SALLEE]] *[[MT. RICH]] *[[CONSTANTINE]] *[[THE SUMMIT]] *[[THE STONE]] *[[WESTERHALL POINT]] *[[LAGOON ROAD]] *[[GRANLETTE]] *[[FELIX PARK]] *[[MT. SEALEY]] *[[WHITE GUN]] *[[HERMON]] *[[LOWER CONFERENCE]] *[[WOODFORD]] *[[UPPER CONFERENCE]] *[[THE GREENS]] *[[PARK ESTATE]] *[[ST. PAUL'S]] *[[AFRICA]] *[[GOOD HOPE]] *[[TANTEEN TERRACE]] *[[MARRAST HILL]] *[[DEPONTHIEU STREET]] *[[ARCHIBALD AVENUE]] *[[H.A BLAIZE STREET]] *[[QUEEN'S PARK]] *[[MALONEY STREET]] *[[VINCENNES]] *[[MARLMOUNT]] *[[LA TANTE]] *[[LOWER LAURA]] *[[CONTENT]] *[[COOPER'S HILL]] *[[APSLEY HILL]] *[[FOUNTAIN]] *[[WALTHAM]] *[[MARAN]] *[[FIELD STREET]] *[[DIAMOND ESTATE]] *[[NON-PARIEL]] *[[CRUICKSHANK ROAD]] *[[COAST GUARD]] *[[CHARLOTTE VALE]] *[[HARMONY HALL]] *[[STEWAD COTTAGE]] *[[BONAIR]] *[[GROSSPOINT, GROSS POINT VILLA]] *[[DIEGO PIECE]] *[[BONIAR ROAD, BONAIR]] *[[RESOURCE]] *[[DE VILLA]] *[[DIAMOND STREET]] *[[WALTER STREET]] *[[GROSS POINT, GROSS POINT VILLA]] *[[DIXIE]] *[[RETREAT]] *[[ST. DAVID STREET]] *[[NEW GARDENS]] *[[MARIGOT]] *[[GOUYAVE ESTATE]] *[[UPPER DEPRADINE, UPPER]] *[[DOCTOR BELLE]] *[[WINDSOR]] *[[VICTORIA STREET]] *[[CHAPEL ROAD]] *[[MT. CARMEL]] *[[GLADSTONE ROAD]] *[[DURRANT ROAD]] *[[MAULTY]] *[[BELLE-VUE (BELOW ROAD)]] *[[HIGH STREET, SAUTEURS]] *[[MT. ALEXANDER]] *[[GRAND ROY]] *[[PROSPECT]] *[[PEGGYS WHIM, HERMITAGE]] *[[CELESTE]] *[[RED MUD]] *[[BLUGGO]] *[[SAMARITAN]] *[[BEVERLY LANE, MADEYS]] *[[CHANTIMELLE]] *[[COALS GAPS]] *[[MT. WILLIAMS]] *[[AHOMA]] *[[MOYAH]] *[[CROSS STREET, SAUTEURS]] *[[DARVEY]] *[[MT. REUIL]] *[[BLACK FOREST]] *[[BLACK FOREST, VENDOME]] *[[PETITE ESPERANCE]] *[[GRAVEL STREET, VENDOME]] *[[MT. CUMMA]] *[[RADIX, MT. PARNASSUS]] *[[TABOR]] *[[MELROSE]] *[[JONES ROAD]] *[[GRENVILLE VALE]] *[[MC LAINE ALLEY, SAUTEURS]] *[[SAUTEURS]] *[[MEADOW]] *[[BLACK BAY]] *[[DUMFRIES]] *[[UPPER DEPRADINE, GOUYAVE]] *[[BROOKLYN]] *[[EDWARD STREET]] *[[CLOZIER]] *[[CENTRAL DEPRADINE STREET]] *[[ST. PETER STREET]] *[[FLORIDA]] *[[LOWER DEPRADINE STREET]] *[[ST. JOHN STREET]] *[[MT. RUSH]] *[[GREEN STREET]] *[[JUBILEE STREET]] *[[WALKER]] *[[CONCORD]] *[[BROTHERS ESTATE]] *[[BELVIDERE]] *[[CORNET'S WALK]] *[[EDWARD STREET, GOUYAVE]] *[[SCHOOL LANE, GOUYAVE]] *[[DOUGALDSTON]] *[[HILL'S VIEW]] *[[ROSEMOUNT]] *[[LANGTON ROAD, GOUYAVE]] *[[RENNIE]] *[[MT. GRANBY]] *[[COTTON BAILY]] *[[GLEBE STREET, SAUTEURS]] *[[POINTFIELD]] *[[LEVERA]] *[[BOTANICAL GARDENS]] *[[ST. JOHN'S STREET]] *[[LA RESOURCE]] *[[INDUSTRY]] *[[DUQUESNE]] *[[QUEEN STREET]] *[[FAIR FIELD ROAD]] *[[MT. EDGE COMBE]] *[[TUILLIERIES]] *[[PADDOCK]] *[[CHEMIN RIVER]] *[[MT. AGNES]] *[[EPPIN FOREST]] *[[CHAMPFLEURS]] *[[NOELSVILLE]] *[[KAFE BEAU HILL]] *[[BATTLE HILL]] *[[TAYBAKAY]] *[[PERSEVERANCE]] *[[GOUYAVE]] *[[BACK STREET, TEMPE]] *[[CLARKS COAT BAY]] *[[WELCOME]] *[[CALABASH ALLEY]] *[[LA FEMME]] *[[HILL VIEW, GOUYAVE]] *[[NEW STREET, GOUYAVE]] *[[NEW STREET, GOUYAVE]] *[[NEW SREET]] *[[EDWARD STREET, GOUYAVE]] *[[LANGTON ROAD]] *[[VICTORIA ROAD, GOUYAVE]] *[[ST BENOIT STREET, GOUYAVE]] *[[RIVER LANE, GOUYAVE ESTATE]] *[[VICTORIA ROAD, GOUYAVE]] *[[HILLS VIEW, GOUYAVE]] *[[LANGTON ROAD, GOUYAVE]] *[[BOYKE'S LANE]] *[[ST. FRANCIS STREET]] *[[BOYKES LANE, GOUYAVE]] *[[CORNETS WALK, GOUYAVE]] *[[MT. NESBIT]] *[[MITCHELL'S LANE]] *[[MARKET HILL]] *[[OBSERVATORY ROAD]] *[[LONG GUTTER]] *[[COX ALLEY]] *[[BRIGG'S ALLEY]] *[[TANTEEN, TANTEEN TERRACE]] *[[CROSS STREET]] *[[BAIN'S ALLEY]] *[[TYRREL STREET]] *[[CHURCH STREET]] *[[MT. WHELDALE]] *[[THE VILLA, LONG GUTTER]] *[[DE VILLA, BLACKBURN ALLEY]] *[[HADDON SMITH STREET]] *[[BLACKBURN ALLEY]] *[[MUNRO STREET]] *[[GROSS POINT VILLA]] *[[TAYLOR]] *[[RESOURCE, RESOURCE]] *[[HENRY STREET]] *[[GALL STREET]] *[[CHURCH HILL ROAD]] *[[BONAIR ROAD, BONAIR]] *[[CRUICKSHANK ROAD, VICTORIA]] *[[FAIR FIELD ROAD, VICTORIA]] *[[BATHWAY]] *[[BAY ROAD, SAUTEURS]] *[[NULL]] *[[TOP HILL, HERMITAGE]] *[[DUQUESNE, DUQUESNE]] *[[DE BLANDEAU]] *[[CASTIGNE]] *[[GLEBE LAND, SAUTEURS]] *[[MAIN STREET, SAUTEURS]] *[[MAHOUT, SAUTEURS]] *[[UPPER HARFORD VILLAGE]] *[[BLAIZE]] *[[SALISBURY STREET, SAUTEURS]] *[[CALLISTE SETTLEMENT]] *[[GUPO]] *[[HILL TOP, CALIVIGNY]] *[[MT. RODNEY]] *[[DUQUENSE]] *[[LA FORTUNE BRIDGE]] *[[RED HEAD STREET, SAUTEURS]] *[[HIGH ST, SAUTEURS]] *[[DE SILLES]] *[[HILL STREET, SAUTEURS]] *[[QUEEN STREET, VICTORIA]] *[[MUNROE STREET, VICTORIA]] *[[CENTRAL DEPRADINE, GOUYAVE]] *[[DOTHAN ESTATE]] *[[LOWER DEPRADINE, GOUYAVE]] *[[MT. FELIX]] *[[MT. PLASIR]] *[[SCHOOL LANE]] *[[ST. DOMINIC'S ST.]] *[[HILLSVIEW, GOUYAVE]] *[[ST PETERS STREET, GOUYAVE]] *[[ST. BENOIT'S STREET]] *[[VICTORIA ROAD]] *[[ST DOMINIC STREET, GOUYAVE]] *[[FERGUSONS LANE, GOUYAVE]] *[[RADIX]] *[[ST FRANCIS, GOUYAVE]] *[[CORNWALL STREET, SAUTEURS]] *[[HIGH STREET, SAUTEURS]] *[[ST PETERS, GOUYAVE]] *[[THE VILLA, SAUTEURS]] *[[SALISBURY STREET, SAUTEURS]] *[[RED HEAD STREET, SAUTEURS]] *[[RIVER LANE, GOUYAVE]] *[[TRANQUIL LANE]] *[[CHANTILLY, MT. GAY]] *[[UPPER DEPRADINE, GOUYAVE]] *[[MORNE JALOUX]] *[[CHAPEL'S LANE]] *[[MALIGNON]] *[[MC NELLIE ALLEY, SAUTEURS]] *[[SALISBURY RD, SAUTEURS]] *[[REDHEAD ST, SAUTEURS]] *[[MC NELLY ALLEY, SAUTEURS]] *[[CEDARS]] *[[BOCAGE, BONAIR]] *[[BONAIR, NULL]] *[[DIXIE, SPRINGS]] *[[APRES TOUTE]] *[[ST DOMINIC, GOUYAVE]] *[[HIGH GATE, MORNE FENDUE]] *[[ADAM'S ALLEY]] *[[THE VILLA, THE ROCK]] *[[GORE STREET]] *[[MELVILLE STREET]] *[[THE STONES, NEW HAMPSHIRE]] *[[RAVINE, MT. GAY]] *[[MAYANN, CONSTANTINE]] *[[BEN JONES STREET]] *[[CHADDEAU]] *[[QUEEN STREET, ST. JOHN'S]] *[[VINEYARD]] *[[BACK STRRET, TEMPE]] *[[CODRONA]] *[[BACK STREET]] *[[MANGO, NEW HAMPSHIRE]] *[[MT. ANON]] *[[SAMUELS AVENUE]] *[[SEATON BROWNE STREET]] *[[SAMARITAN, DIEGO PIECE]] *[[MUNRO STREET, VICTORIA]] *[[EDGEMOND POINT]] *[[MC NELLIE ALLEY, SAUTEURS]] *[[CHANTILLY, TEMPE]] *[[RED GATE]] *[[VICTORIA]] *[[LA TANTE, GLEBE LAND]] *[[LA CALOME, NEW WESTERHALL]] *[[TOUS CONGO]] *[[PENNY RETREAT]] *[[CARNAL ROAD]] *[[MT ST ERVANS, L'ESTERRIE]] *[[BOCAGE]] *[[MAUCHETTE]] *[[NETTLE POINT]] *[[PETIT BOCAGE]] *[[MON REPOS]] *[[MT. EDGECOMBE]] *[[PETITE BACAYE, NEW]] *[[MARLMOUNT, GLEBE LAND]] *[[DEHAR, GLEBE LAND]] *[[MC NELLY ALLY, SAUTEURS]] *[[TETMUND]] *[[SAUTEURS, MAHOUT]] *[[OTTLEY'S LANE]] *[[10 CIRCULAR DRIVE, FREQUENTE]] *[[THE STONES, GRAND ANSE]] *[[MCNEILLY ALLEY, SAUTEURS]] *[[SUNSET VALLEY, POINT SALINES]] *[[FALL EDGE, GRAND ANSE]] *[[HILLS ROAD]] *[[GREY STONE]] *[[TRYNE ALLEY]] *[[TURTLE BACK DRIVE, LANCE AUX]] *[[HILLSTREET, SAUTEURS]] *[[HARFORD VILLAGE, LOWER]] *[[ST. CYR]] *[[ST DAVID STREET, VICTORIA]] *[[GALL STREET, VICTORIA]] *[[CHANTILLY]] *[[ST JOHN STREET, VICTORIA]] *[[GRAND ETANG ROAD]] *[[REDMUD]] *[[CRUICK SHANK, VICTORIA]] *[[THE STONS, GRAND ANSE]] *[[BAMBOO]] *[[DIAMOND STREET, VICTORIA]] *[[WILLIS]] *[[CLARKES COURT BAY,]] *[[CLARKE COURT BAY, WOODLANDS]] *[[MBHIGHWAY, GRAND ANSE]] *[[M H HIGHWAY, GRAND ANSE]] *[[M B HIGHWAY, GRAND ANSE]] *[[YOUNG STREET]] *[[HILLSBOROUGH STREET]] *[[GREY STONE, BELMONT]] *[[CAFE, WOODLANDS]] *[[MC NEILLY, SAUTEURS]] *[[SLINGER STREET, HADDON SMITH]] *[[BON ACCORD ESTATE]] *[[HALIFAX STREET]] *[[MAHOUT, ROSE HILL]] *[[MAIN STREEET, SAUTEURS]] *[[GLEBE SREET, SAUTEURS]] *[[GLEBLAND, SAUTEURS]] *[[PETITE ETANG]] *[[MAIN-STREET SAUTEURS,]] *[[UPPER CARRIERE]] *[[RED HEAD STREET, LA FORTUNE]] *[[JUMBIE]] *[[MARINE VILLA]] *[[CHANCERY STREET, MUNRO]] *[[DUSTY HIGHWAY, GRAND ANSE]] *[[CAFE, CAFÉ]] *[[MYANN, CONSTANTINE]] *[[SAMUEL AVENUE, CALIVIGNY]] *[[MONGO ROAD, GOUYAVE ESTATE]] *[[RIVER ROAD, MT. RUSH]] *[[CALRKS COURT BAY, WOODLANDS]] *[[COCOA ROAD, MARIAN]] *[[MC NEILLY ALLEY, MARLI]] *[[SLINGER STREET, ST. DAVID]] *[[WHITE HALL, PARK LANE]] *[[GRAND ANSE ESTATE, LANCE AUX]] *[[MT ST ERVANS, LA DIGUE]] *[[MAURICE BISHOP HWY, GRAND]] *[[WATERLOO]] *[[FERGUSON'S LANE]] *[[GLEBE LAND, SAUTEURS]] *[[BAY ROAD, SAUTEURS]] *[[GLEBE STREET, SAUTEURS]] f32ab81750bb7da25405cc4f69e27a651800a398 26 25 2022-07-19T02:34:50Z Wikiricky 1 Added list of parishes wikitext text/x-wiki This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes ==[[St.George,Grenada|St.George]]== {{div col|colwidth=30em}} *[[ANNANDALE,St.George,Grenada|ANNANDALE]] *[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]] *[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]] *[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]] *[[BAMBOO,St.George,Grenada|BAMBOO]] *[[BEAULIEU,St.George,Grenada|BEAULIEU]] *[[BELMONT,St.George,Grenada|BELMONT]] *[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]] *[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]] *[[BOCA,St.George,Grenada|BOCA]] *[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]] *[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]] *[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]] *[[BRIZAN,St.George,Grenada|BRIZAN]] *[[CAFE,St.George,Grenada|CAFE]] *[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]] *[[CALIVIGNY,St.George,Grenada|CALIVIGNY]] *[[CALLISTE,St.George,Grenada|CALLISTE]] *[[CARENAGE,St.George,Grenada|CARENAGE]] *[[CARRIERE,St.George,Grenada|CARRIERE]] *[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]] *[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]] *[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]] *[[CHERRY HILL,St.George,Grenada|CHERRY HILL]] *[[CHURCH STREET,St.George,Grenada|CHURCH STREET]] *[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]] *[[CLARKES COURT BAY,,St.George,Grenada|CLARKES COURT BAY,]] *[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]] *[[CONFER,St.George,Grenada|CONFER]] *[[CONSTANTINE,St.George,Grenada|CONSTANTINE]] *[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]] *[[COX ALLEY,St.George,Grenada|COX ALLEY]] *[[CREIGHTON,St.George,Grenada|CREIGHTON]] *[[CROSS STREET,St.George,Grenada|CROSS STREET]] *[[D'ARBEAU,St.George,Grenada|D'ARBEAU]] *[[DE FAUX,St.George,Grenada|DE FAUX]] *[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]] *[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]] *[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]] *[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]] *[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]] *[[FELIX PARK,St.George,Grenada|FELIX PARK]] *[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]] *[[FONTENOY,St.George,Grenada|FONTENOY]] *[[FORT JUEDY,St.George,Grenada|FORT JUEDY]] *[[FREQUENTE,St.George,Grenada|FREQUENTE]] *[[GOLF COURSE,St.George,Grenada|GOLF COURSE]] *[[GOOD HOPE,St.George,Grenada|GOOD HOPE]] *[[GORE STREET,St.George,Grenada|GORE STREET]] *[[GRAND ANSE,St.George,Grenada|GRAND ANSE]] *[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]] *[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]] *[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]] *[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]] *[[GRAND MAL,St.George,Grenada|GRAND MAL]] *[[GRANTON,St.George,Grenada|GRANTON]] *[[GREEN STREET,St.George,Grenada|GREEN STREET]] *[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]] *[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]] *[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]] *[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]] *[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]] *[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]] *[[HAPPY HILL,St.George,Grenada|HAPPY HILL]] *[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]] *[[HILLS ROAD,St.George,Grenada|HILLS ROAD]] *[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]] *[[HOPE VALE,St.George,Grenada|HOPE VALE]] *[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]] *[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]] *[[JUBILEE STREET,St.George,Grenada|JUBILEE STREET]] *[[JUMBIE,St.George,Grenada|JUMBIE]] *[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]] *[[LA BORIE,St.George,Grenada|LA BORIE]] *[[LA MODE,St.George,Grenada|LA MODE]] *[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]] *[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]] *[[LONG GUTTER,St.George,Grenada|LONG GUTTER]] *[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]] *[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]] *[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]] *[[LUCAS STREET,St.George,Grenada|LUCAS STREET]] *[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]] *[[MARDIGRAS,St.George,Grenada|MARDIGRAS]] *[[MARIAN,St.George,Grenada|MARIAN]] *[[MARKET HILL,St.George,Grenada|MARKET HILL]] *[[MARRAST HILL,St.George,Grenada|MARRAST HILL]] *[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]] *[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]] *[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]] *[[MOLINIERE,St.George,Grenada|MOLINIERE]] *[[MONT TOUTE,St.George,Grenada|MONT TOUTE]] *[[MORNE DELICE,St.George,Grenada|MORNE DELICE]] *[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]] *[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]] *[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]] *[[MT. AIRY,St.George,Grenada|MT. AIRY]] *[[MT. GAY,St.George,Grenada|MT. GAY]] *[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]] *[[MT. MORITZ,St.George,Grenada|MT. MORITZ]] *[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]] *[[MT. RUSH,St.George,Grenada|MT. RUSH]] *[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]] *[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]] *[[OLD FORT,St.George,Grenada|OLD FORT]] *[[PADDOCK,St.George,Grenada|PADDOCK]] *[[PARADE,St.George,Grenada|PARADE]] *[[PARK LANE,St.George,Grenada|PARK LANE]] *[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]] *[[PETERSFIELD,St.George,Grenada|PETERSFIELD]] *[[POINT SALINES,St.George,Grenada|POINT SALINES]] *[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]] *[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]] *[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]] *[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]] *[[RIVER ROAD,St.George,Grenada|RIVER ROAD]] *[[ROEBUCK,St.George,Grenada|ROEBUCK]] *[[SANS SOUCI,St.George,Grenada|SANS SOUCI]] *[[SCOTT STREET,St.George,Grenada|SCOTT STREET]] *[[SHENDA,St.George,Grenada|SHENDA]] *[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]] *[[SNUG CORNER,St.George,Grenada|SNUG CORNER]] *[[SPRING GARDEN,St.George,Grenada|SPRING GARDEN]] *[[SPRINGS,St.George,Grenada|SPRINGS]] *[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]] *[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]] *[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]] *[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]] *[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]] *[[TEMPE,St.George,Grenada|TEMPE]] *[[THE BOCAS,St.George,Grenada|THE BOCAS]] *[[THE GREENS,St.George,Grenada|THE GREENS]] *[[THE LIMES,St.George,Grenada|THE LIMES]] *[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]] *[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]] *[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]] *[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]] *[[TRUE BLUE,St.George,Grenada|TRUE BLUE]] *[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]] *[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]] *[[TYRREL STREET,St.George,Grenada|TYRREL STREET]] *[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]] *[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]] *[[VENDOME,St.George,Grenada|VENDOME]] *[[WELCOME,St.George,Grenada|WELCOME]] *[[WHITE GUN,St.George,Grenada|WHITE GUN]] *[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]] *[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]] *[[WILLIS,St.George,Grenada|WILLIS]] *[[WOODLANDS,St.George,Grenada|WOODLANDS]] *[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]] *[[YOUNG STREET,St.George,Grenada|YOUNG STREET]] {{div col end}} ==[[St.John,Grenada|St.John]]== {{div col|colwidth=30em}} *[[BACK STREET,St.John,Grenada|BACK STREET]] *[[BELVIDERE,St.John,Grenada|BELVIDERE]] *[[BLACK BAY,St.John,Grenada|BLACK BAY]] *[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]] *[[BROOKLYN,St.John,Grenada|BROOKLYN]] *[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]] *[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]] *[[CLOZIER,St.John,Grenada|CLOZIER]] *[[CONCORD,St.John,Grenada|CONCORD]] *[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]] *[[COTTON BAILY,St.John,Grenada|COTTON BAILY]] *[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]] *[[DEPONTHIEU STREET,St.John,Grenada|DEPONTHIEU STREET]] *[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]] *[[DUMFRIES,St.John,Grenada|DUMFRIES]] *[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]] *[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]] *[[FLORIDA,St.John,Grenada|FLORIDA]] *[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]] *[[GRAND ROY,St.John,Grenada|GRAND ROY]] *[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]] *[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]] *[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]] *[[MARIGOT,St.John,Grenada|MARIGOT]] *[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]] *[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]] *[[MT. GRANBY,St.John,Grenada|MT. GRANBY]] *[[MT. NESBIT,St.John,Grenada|MT. NESBIT]] *[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]] *[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]] *[[PALMISTE,St.John,Grenada|PALMISTE]] *[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]] *[[RENNIE,St.John,Grenada|RENNIE]] *[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]] *[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]] *[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]] *[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]] *[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]] *[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]] *[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]] *[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]] *[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]] *[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]] *[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]] *[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]] *[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]] *[[WATERLOO,St.John,Grenada|WATERLOO]] {{div col end}} ==[[St.David,Grenada|St.David]]== {{div col|colwidth=30em}} *[[APRES TOUTE,St.David,Grenada|APRES TOUTE]] *[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]] *[[BEATON,St.David,Grenada|BEATON]] *[[BELLE ISLE,St.David,Grenada|BELLE ISLE]] *[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]] *[[COALS GAPS,St.David,Grenada|COALS GAPS]] *[[CORINTH,St.David,Grenada|CORINTH]] *[[DUDMAR,St.David,Grenada|DUDMAR]] *[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]] *[[LA CALOHME,St.David,Grenada|LA CALOHME]] *[[LA CALOME, NEW WESTERHALL,St.David,Grenada|LA CALOME, NEW WESTERHALL]] *[[LA FEMME,St.David,Grenada|LA FEMME]] *[[LA FLORETTA,St.David,Grenada|LA FLORETTA]] *[[LA PASTORA,St.David,Grenada|LA PASTORA]] *[[LA SAGESSE,St.David,Grenada|LA SAGESSE]] *[[LA TANTE,St.David,Grenada|LA TANTE]] *[[MARLMOUNT,St.David,Grenada|MARLMOUNT]] *[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]] *[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]] *[[MINORCA,St.David,Grenada|MINORCA]] *[[MON REPOS,St.David,Grenada|MON REPOS]] *[[MT. AGNES,St.David,Grenada|MT. AGNES]] *[[MT. DISIRE,St.David,Grenada|MT. DISIRE]] *[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]] *[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]] *[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]] *[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]] *[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]] *[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]] *[[PETITE ETANG,St.David,Grenada|PETITE ETANG]] *[[POMME ROSE,St.David,Grenada|POMME ROSE]] *[[PROVIDENCE,St.David,Grenada|PROVIDENCE]] *[[RED GATE,St.David,Grenada|RED GATE]] *[[REDMUD,St.David,Grenada|REDMUD]] *[[REQUIN,St.David,Grenada|REQUIN]] *[[SLINGER STREET,St.David,Grenada|SLINGER STREET]] *[[SYRACUSE,St.David,Grenada|SYRACUSE]] *[[THEBAIDE,St.David,Grenada|THEBAIDE]] *[[UPPER LAURA,St.David,Grenada|UPPER LAURA]] *[[VINCENNES,St.David,Grenada|VINCENNES]] *[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]] *[[WINDSOR,St.David,Grenada|WINDSOR]] *[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]] {{div col end}} ==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]== {{div col|colwidth=30em}} *[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]] *[[BELAIR,Carriacou,Grenada|BELAIR]] *[[BELLE VUE,Carriacou,Grenada|BELLE VUE]] *[[BELMONT,Carriacou,Grenada|BELMONT]] *[[BOGLES,Carriacou,Grenada|BOGLES]] *[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]] *[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]] *[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]] *[[DOVER,Carriacou,Grenada|DOVER]] *[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]] *[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]] *[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]] *[[LAURISTON,Carriacou,Grenada|LAURISTON]] *[[LIMLAIR,Carriacou,Grenada|LIMLAIR]] *[[MT ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]] *[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]] *[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]] *[[SIX ROADS,Carriacou,Grenada|SIX ROADS]] *[[TOP HILL,Carriacou,Grenada|TOP HILL]] *[[TOP HILL, HERMITAGE,Carriacou,Grenada|TOP HILL, HERMITAGE]] *[[WINDWARD,Carriacou,Grenada|WINDWARD]] *[[PETIT MARTINIQUE,PETIT MARTINIQUE,Grenada|PETIT MARTINIQUE]] {{div col end}} ==[[St.Andrew,Grenada|St.Andrew]]== {{div col|colwidth=30em}} *[[MT. FANN,St. Andrew,Grenada|MT. FANN]] *[[ADELPHI,St.Andrew,Grenada|ADELPHI]] *[[AHOMA,St.Andrew,Grenada|AHOMA]] *[[BACK STRRET, TEMPE,St.Andrew,Grenada|BACK STRRET, TEMPE]] *[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]] *[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]] *[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]] *[[BELLE VUE SOUTH,St.Andrew,Grenada|BELLE VUE SOUTH]] *[[BELLEVUE,St.Andrew,Grenada|BELLEVUE]] *[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]] *[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]] *[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]] *[[BYELANDS,St.Andrew,Grenada|BYELANDS]] *[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]] *[[CARNAL ROAD,St.Andrew,Grenada|CARNAL ROAD]] *[[CARRIERE,St.Andrew,Grenada|CARRIERE]] *[[CARRUTH,St.Andrew,Grenada|CARRUTH]] *[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]] *[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]] *[[CODRONA,St.Andrew,Grenada|CODRONA]] *[[CONFERENCE,St.Andrew,Grenada|CONFERENCE]] *[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]] *[[CROCHU,St.Andrew,Grenada|CROCHU]] *[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]] *[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]] *[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]] *[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]] *[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]] *[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]] *[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]] *[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]] *[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]] *[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]] *[[HARFORD VILLAGE, LOWER,St.Andrew,Grenada|HARFORD VILLAGE, LOWER]] *[[HOPE,St.Andrew,Grenada|HOPE]] *[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]] *[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]] *[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]] *[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]] *[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]] *[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]] *[[MAHOUT,St.Andrew,Grenada|MAHOUT]] *[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]] *[[MARQUIS,St.Andrew,Grenada|MARQUIS]] *[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]] *[[MELDRUM,St.Andrew,Grenada|MELDRUM]] *[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]] *[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]] *[[MOYAH,St.Andrew,Grenada|MOYAH]] *[[MT ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]] *[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]] *[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]] *[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]] *[[MUNICH,St.Andrew,Grenada|MUNICH]] *[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]] *[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]] *[[PARACLETE,St.Andrew,Grenada|PARACLETE]] *[[PARADISE,St.Andrew,Grenada|PARADISE]] *[[PEARLS,St.Andrew,Grenada|PEARLS]] *[[PLATEAU,St.Andrew,Grenada|PLATEAU]] *[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]] *[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]] *[[RETREAT,St.Andrew,Grenada|RETREAT]] *[[RICHMOND,St.Andrew,Grenada|RICHMOND]] *[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]] *[[SABB,St.Andrew,Grenada|SABB]] *[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]] *[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]] *[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]] *[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]] *[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]] *[[SIMON,St.Andrew,Grenada|SIMON]] *[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]] *[[SOUBISE,St.Andrew,Grenada|SOUBISE]] *[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]] *[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]] *[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]] *[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]] *[[TIVOLI,St.Andrew,Grenada|TIVOLI]] *[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]] *[[UNION,St.Andrew,Grenada|UNION]] *[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]] *[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]] *[[WALKER,St.Andrew,Grenada|WALKER]] {{div col end}} ==[[St.Mark,Grenada|St.Mark]]== {{div col|colwidth=30em}} *[[BEVERLY LANE, MADEYS,St.Mark,Grenada|BEVERLY LANE, MADEYS]] *[[BOCAGE,St.Mark,Grenada|BOCAGE]] *[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]] *[[BONAIR,St.Mark,Grenada|BONAIR]] *[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]] *[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]] *[[COAST GUARD,St.Mark,Grenada|COAST GUARD]] *[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]] *[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]] *[[DARVEY,St.Mark,Grenada|DARVEY]] *[[DE VILLA,St.Mark,Grenada|DE VILLA]] *[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]] *[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]] *[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]] *[[DUQUESNE,St.Mark,Grenada|DUQUESNE]] *[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]] *[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]] *[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]] *[[HARMONY HALL,St.Mark,Grenada|HARMONY HALL]] *[[INDUSTRY,St.Mark,Grenada|INDUSTRY]] *[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]] *[[MARAN,St.Mark,Grenada|MARAN]] *[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]] *[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]] *[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]] *[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]] *[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]] *[[RESOURCE,St.Mark,Grenada|RESOURCE]] *[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]] *[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]] *[[SAMARITAN,St.Mark,Grenada|SAMARITAN]] *[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]] *[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]] *[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]] *[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]] *[[VICTORIA,St.Mark,Grenada|VICTORIA]] {{div col end}} ==[[St.Patrick,Grenada|St.Patrick]]== {{div col|colwidth=30em}} *[[BATHWAY,St.Patrick,Grenada|BATHWAY]] *[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]] *[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]] *[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]] *[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]] *[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]] *[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]] *[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]] *[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]] *[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]] *[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]] *[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]] *[[LA TASTE,St.Patrick,Grenada|LA TASTE]] *[[LEVERA,St.Patrick,Grenada|LEVERA]] *[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]] *[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]] *[[MARLI,St.Patrick,Grenada|MARLI]] *[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]] *[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]] *[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]] *[[MT. RICH,St.Patrick,Grenada|MT. RICH]] *[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]] *[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]] *[[PLAINS,St.Patrick,Grenada|PLAINS]] *[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]] *[[PROSPECT,St.Patrick,Grenada|PROSPECT]] *[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]] *[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]] *[[RED MUD,St.Patrick,Grenada|RED MUD]] *[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]] *[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]] *[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]] *[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]] *[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]] *[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]] {{div col end}} == Uncategorized== *[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]] *[[AFRICA,,Grenada|AFRICA]] *[[APSLEY HILL,,Grenada|APSLEY HILL]] *[[BAYROAD,,Grenada|BAYROAD]] *[[BLAIZE,,Grenada|BLAIZE]] *[[BLUGGO,,Grenada|BLUGGO]] *[[BYWAY,,Grenada|BYWAY]] *[[CASTIGNE,,Grenada|CASTIGNE]] *[[CEDARS,,Grenada|CEDARS]] *[[CELESTE,,Grenada|CELESTE]] *[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]] *[[CHADDEAU,,Grenada|CHADDEAU]] *[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]] *[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]] *[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]] *[[CONTENT,,Grenada|CONTENT]] *[[COOPER'S HILL,,Grenada|COOPER'S HILL]] *[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]] *[[DE SILLES,,Grenada|DE SILLES]] *[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]] *[[DOCTOR BELLE,,Grenada|DOCTOR BELLE]] *[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]] *[[DURRANT ROAD,,Grenada|DURRANT ROAD]] *[[FENCE,,Grenada|FENCE]] *[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]] *[[FIELD STREET,,Grenada|FIELD STREET]] *[[FOUNTAIN,,Grenada|FOUNTAIN]] *[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]] *[[GRANLETTE,,Grenada|GRANLETTE]] *[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]] *[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]] *[[GUPO,,Grenada|GUPO]] *[[HENRY STREET,,Grenada|HENRY STREET]] *[[HERMON,,Grenada|HERMON]] *[[JONES ROAD,,Grenada|JONES ROAD]] *[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]] *[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]] *[[LOWER LAURA,,Grenada|LOWER LAURA]] *[[LYDER,,Grenada|LYDER]] *[[MADEYS,,Grenada|MADEYS]] *[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]] *[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]] *[[MALIGNON,,Grenada|MALIGNON]] *[[MALONEY STREET,,Grenada|MALONEY STREET]] *[[MARINE VILLA,,Grenada|MARINE VILLA]] *[[MAUCHETTE,,Grenada|MAUCHETTE]] *[[MAULTY,,Grenada|MAULTY]] *[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]] *[[MEADOW,,Grenada|MEADOW]] *[[MELROSE,,Grenada|MELROSE]] *[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]] *[[MT. ANON,,Grenada|MT. ANON]] *[[MT. CUMMA,,Grenada|MT. CUMMA]] *[[MT. FELIX,,Grenada|MT. FELIX]] *[[MT. PLASIR,,Grenada|MT. PLASIR]] *[[MT. REUIL,,Grenada|MT. REUIL]] *[[MT. RODNEY,,Grenada|MT. RODNEY]] *[[MT. SEALEY,,Grenada|MT. SEALEY]] *[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]] *[[MUNRO STREET,,Grenada|MUNRO STREET]] *[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]] *[[NETTLE POINT,,Grenada|NETTLE POINT]] *[[NEW GARDENS,,Grenada|NEW GARDENS]] *[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]] *[[PARK ESTATE,,Grenada|PARK ESTATE]] *[[PENNY RETREAT,,Grenada|PENNY RETREAT]] *[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]] *[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]] *[[SCHOOL LANE,,Grenada|SCHOOL LANE]] *[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]] *[[ST. CYR,,Grenada|ST. CYR]] *[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]] *[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]] *[[TABOR,,Grenada|TABOR]] *[[TAYBAKAY,,Grenada|TAYBAKAY]] *[[TAYLOR,,Grenada|TAYLOR]] *[[TETMUND,,Grenada|TETMUND]] *[[THE SUMMIT,,Grenada|THE SUMMIT]] *[[THE VILLA,,Grenada|THE VILLA]] *[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]] *[[TOUS CONGO,,Grenada|TOUS CONGO]] *[[VINEYARD,,Grenada|VINEYARD]] *[[WALTHAM,,Grenada|WALTHAM]] *[[WELLS ROAD,,Grenada|WELLS ROAD]] *[[WOODFORD,,Grenada|WOODFORD]] fe0ed0dfb5ec06681bcb995826c7b5786c161d8c Template:Div col 10 18 28 27 2022-07-19T23:24:45Z Wikiricky 1 1 revision imported wikitext text/x-wiki <includeonly><templatestyles src="Div col/styles.css"/><!-- --><div class="div-col {{#ifeq:{{{small|}}}|yes|div-col-small}} {{#ifeq:{{{rules|}}}|yes|div-col-rules}} {{{class|}}}" <!-- -->{{#if:{{{colwidth|}}}{{{gap|}}}{{{style|}}}|<!-- -->style="{{#if:{{{colwidth|}}}|column-width: {{{colwidth}}};}}{{#if:{{{gap|}}}|column-gap: {{{gap}}};}}{{#if:{{{style|}}}|{{{style}}}}}"<!-- -->}}><!-- -->{{#if:{{{content|}}}|{{{content}}}</div>}}<!-- Inventory how many pages use small=yes -->{{#ifeq:{{{small|}}}|yes|[[Category:Pages using div col with small parameter]]}}<!-- --></includeonly>{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using div col with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Div col]] with unknown parameter "_VALUE_"; use colwidth= to specify column size |ignoreblank=y | class | colwidth | content | gap | rules | small | style }}<noinclude> {{Documentation}} </noinclude> 6e84133dd867d6c701e7b161878cf66665bb7eb7 Template:CSS3 multiple column layout 10 19 30 29 2022-07-19T23:24:45Z Wikiricky 1 1 revision imported wikitext text/x-wiki {| class="wikitable" style="float:right;clear:right;font-size:90%;margin:0 0 1em 1em;text-align:center;line-height:1.25em;" |+ style="line-height:1.25em;padding-bottom:0.25em;"| CSS3 multiple-column layout browser support |- ! Property !! [[Internet Explorer|Internet<br />Explorer]] !! [[Firefox]] !! [[Safari (web browser)|Safari]] !! [[Google Chrome|Chrome]] !! [[Opera (web browser)|Opera]] |- | column-width<br/>column-count | {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{yes|≥ 1.5<br />{{smaller|(2005)}}}} || {{yes|≥ 3<br />{{smaller|(2007)}}}} || {{yes|≥ 1<br />{{smaller|(2008)}}}} || {{yes|≥ 11.1<br />{{smaller|(2011)}}}} |- | columns | {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{yes|≥ 9<br />{{smaller|(2011)}}}} || {{yes|≥ 3<br />{{smaller|(2007)}}}} || {{yes|≥ 1<br />{{smaller|(2008)}}}} || {{yes|≥ 11.1<br />{{smaller|(2011)}}}} |- | break-before<br/>break-after<br/>break-inside | {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{maybe|≥ 65<br />{{smaller|(2019)}}}}<!-- no break-after --> || {{yes|≥ 10<br />{{smaller|(2016)}}}} || {{maybe|≥ 65<br />{{smaller|(2016)}}}}<!-- no break-after --> || {{maybe|≥ 15<br />{{smaller|(2013)}}}}<!-- no break-after --> |- |colspan="6" style="text-align:right"|{{navbar|CSS3 multiple column layout|mini=y}} |}<noinclude> {{Documentation}} </noinclude> c44910bab9b28d152d3b51049cbfed9bf55dcca5 173 30 2022-07-21T06:46:06Z en>SunDawn 0 Reverted 1 edit by [[Special:Contributions/Joaquin Bismonte|Joaquin Bismonte]] ([[User talk:Joaquin Bismonte|talk]]) to last revision by IagoQnsi wikitext text/x-wiki {| class="wikitable" style="float:right;clear:right;font-size:90%;margin:0 0 1em 1em;text-align:center;line-height:1.25em;" |+ style="line-height:1.25em;padding-bottom:0.25em;"| CSS3 multiple-column layout browser support |- ! Property !! [[Internet Explorer|Internet<br />Explorer]] !! [[Firefox]] !! [[Safari (web browser)|Safari]] !! [[Google Chrome|Chrome]] !! [[Opera (web browser)|Opera]] |- | column-width<br/>column-count | {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{yes|≥ 1.5<br />{{smaller|(2005)}}}} || {{yes|≥ 3<br />{{smaller|(2007)}}}} || {{yes|≥ 1<br />{{smaller|(2008)}}}} || {{yes|≥ 11.1<br />{{smaller|(2011)}}}} |- | columns | {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{yes|≥ 9<br />{{smaller|(2011)}}}} || {{yes|≥ 3<br />{{smaller|(2007)}}}} || {{yes|≥ 1<br />{{smaller|(2008)}}}} || {{yes|≥ 11.1<br />{{smaller|(2011)}}}} |- | break-before<br/>break-after<br/>break-inside | {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{maybe|≥ 65<br />{{smaller|(2019)}}}}<!-- no break-after --> || {{yes|≥ 10<br />{{smaller|(2016)}}}} || {{maybe|≥ 65<br />{{smaller|(2016)}}}}<!-- no break-after --> || {{maybe|≥ 15<br />{{smaller|(2013)}}}}<!-- no break-after --> |- |colspan="6" style="text-align:right"|{{navbar|CSS3 multiple column layout|mini=y}} |}<noinclude> {{Documentation}} </noinclude> c44910bab9b28d152d3b51049cbfed9bf55dcca5 Template:Category link with count 10 20 32 31 2022-07-19T23:24:45Z Wikiricky 1 1 revision imported wikitext text/x-wiki [[:Category:{{#invoke:string|replace|1={{{1}}}|2=^:?[Cc]ategory:|3=|plain=false}}|<!-- -->{{#if:{{{name|}}}|{{{name}}}|Category:{{#invoke:string|replace|1={{{1}}}|2=^:?[Cc]ategory:|3=|plain=false}}}}<!-- -->]]&nbsp;({{PAGESINCATEGORY:{{#invoke:string|replace|1={{{1}}}|2=^:?[Cc]ategory:|3=|plain=false}}|{{{2|all}}}}})<noinclude> {{Documentation}} </noinclude> f93f1540b8c157703bd6d24ae35c35bef745981d Template:Code 10 21 34 33 2022-07-19T23:24:46Z Wikiricky 1 1 revision imported wikitext text/x-wiki {{#tag:syntaxhighlight|{{{code|{{{1}}}}}}|lang={{{lang|{{{2|text}}}}}}|class={{{class|}}}|id={{{id|}}}|style={{{style|}}}|inline=1}}<noinclude> {{documentation}} <!-- Add categories to the /doc subpage, interwikis to Wikidata, not here --> </noinclude> 5d9b1a0980efe1b02eb91bc717438a5ae4a5ee04 Template:Column-generating template families 10 22 36 35 2022-07-19T23:24:46Z Wikiricky 1 1 revision imported wikitext text/x-wiki === Column-generating template families === '''The templates listed here are not interchangeable'''. For example, using {{tl|col-float}} with {{tl|col-end}} instead of {{tl|col-float-end}} would leave a [[HTML]] [[Span and div|"div" (division)]] open, potentially harming any subsequent formatting. <section begin="table" /> {| class="wikitable" style="line-height:1.4em" |+ Column templates |- style="vertical-align:middle;" ! scope="col" | Type ! scope="col" | Family ! scope="col" | {{longitem|Handles wiki <br/>&nbsp;table code?{{sup|{{dagger}}}}}} ! scope="col" | Responsive/<br>Mobile suited ! scope="col" | Start template ! scope="col" | Column divider ! scope="col" | End template |- | rowspan="2" | Float | "Col-float" | {{yes}} | {{yes}} | {{tl|Col-float}} | {{tl|Col-float-break}} | {{tl|Col-float-end}} |- | "Columns-start" | {{yes}} | {{yes}} | {{tl|Columns-start}} | {{tl|Column}} | {{tl|Columns-end}} |- | rowspan="2" | Columns | "Div col" | {{yes}} | {{yes}} | {{tl|Div col}} | – | {{tl|Div col end}} |- | "Columns-list" | {{no}} | {{yes}} | {{tl|Columns-list}} (wraps div col) | – | – |- | Flexbox | "Flex columns" | {{no}} | {{yes}} | {{tl|Flex columns}} | – | – |- | Table | "Col" | {{yes}} | {{no}} | {{tl|Col-begin}}, <br/>{{tl|Col-begin-fixed}} or<br/>{{tl|Col-begin-small}} | {{tl|Col-break}} or<br/>{{tl|Col-2}} .. {{tl|Col-5}} | {{tl|Col-end}} |} {{sup|{{dagger}}}} Can template handle the basic [[Help:Wiki markup|wiki markup]] <code><nowiki>{| | || |- |}</nowiki></code> [[Help:Tables|used to create tables]]? If not, special templates that produce these elements (such as {{tl|(!}}, {{tl|!}}, {{tl|!!}}, {{tl|!-}}, {{tl|!)}})—or [[HTML element|HTML tags]] ({{tag|table}}, {{tag|tr}}, etc.)—need to be used instead.<section end="table" /><noinclude> {{Documentation | content = Used by column template documentation pages to provide links to other column-related templates. [[Category:Multi-column templates| ]] [[Category:Related-topic templates]] }} </noinclude> 83210b3edf5c03586efeeb2e82e5ebaf7b5868d8 Template:Dagger 10 23 38 37 2022-07-19T23:24:46Z Wikiricky 1 1 revision imported wikitext text/x-wiki [[File:Dagger-14-plain.png|alt={{if empty|{{{alt|}}}|dagger}}|link=]]<noinclude>{{Documentation}} </noinclude> 5e0a5d9443b211af401b97ba3be2f6b64c100fd4 Template:Div col/doc 10 24 40 39 2022-07-19T23:24:46Z Wikiricky 1 1 revision imported wikitext text/x-wiki {{Documentation subpage}} <!----------------------------------------------------------------------------- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE ------------------------------------------------------------------------------> {{#ifeq:{{FULLPAGENAME}}|Template:Div col|{{High-use| 269676 }}|{{#ifeq:{{FULLPAGENAME}}|Template:Div col end|{{High-use| 209292 }}}}}} {{Ombox |type=notice |text=Columns are not supported by some older browsers, most notably Internet Explorer 9 and earlier and Opera 11.0 and earlier. See {{section link|Template:Reflist#Browser support for columns}} for more information.}} {{CSS3 multiple column layout}} {{Lua|Module:Check for unknown parameters}} {{Uses TemplateStyles|Template:Div col/styles.css}} The '''div col''' (short for division columns) formats a list into columns that wrap at multiple screen resolutions responsively. It automatically breaks the available screen space into equal parts, meaning, for instance, that it is not necessary to guess how many columns to use and then figure out the dividing point(s), e.g., the halfway point to divide the list into two columns, or the one-third and two-thirds points to divide the list into three columns. ==Usage== === Basic usage === <pre> {{div col}} <!-- default width is 30em --> * a * b * c * d * e * f * g * h {{div col end}} </pre> Produces: {{Div col}} * a * b * c * d * e * f * g * h {{Div col end}} ===Parameters=== There are six parameters for this template: ; {{para|colwidth}} : Specifies the minimum width of the columns so that the number of columns is automatically based on screen width (that is, more columns will be shown on wider displays). If no value is supplied, the template uses a default of 30em. The width can be specified in any [[CSS#Length units|CSS unit of measure]], for instance, the [[Em (typography)|em]] (about the width of the capital "M" of the displayed typeface), e.g., <code>colwidth=20em</code>. ; {{para|rules|yes}} : Adds vertical lines ("rules") between the columns if set to <code>yes</code>. ; {{para|gap}} : Specifies the space between the content of adjacent columns, in any valid CSS width unit, e.g., <code>gap=2em</code>. The default spacing (set by browser) is 1em. ; {{para|class}} : An HTML class, or multiple space-delimited classes, to apply to the columns. For example, <code>class=plainlist nowrap</code>. ; {{para|style}} : [[Cascading Style Sheets|CSS styling]] to apply to the columns. ; {{para|small|yes}} : Sets font size to 90%. ; {{para|content}} : Content to apply to the columns. This parameter is effectively equivalent to {{tl|columns-list}}, which is a pass-through for this template. === Examples === ====Colwidth==== <pre> {{div col|colwidth=10em}} <!-- column width of 10em --> * a * b * c * d * e * f * g * h {{div col end}} </pre> Produces: {{Div col|colwidth=10em}} * a * b * c * d * e * f * g * h {{Div col end}} ====Rules==== <pre> {{Div col|colwidth=10em|rules=yes}} <!-- column width of 10em with rules --> * a * b * c * d * e * f * g * h {{Div col end}} </pre> Produces: {{Div col|colwidth=10em|rules=yes}} * a * b * c * d * e * f * g * h {{Div col end}} ====Gap==== <pre> {{Div col|colwidth=10em|rules=yes|gap=2em}} <!-- column width of 10em with rules and a gap of 2em --> * a * b * c * d * e * f * g * h {{Div col end}} </pre> Produces: {{Div col|colwidth=10em|rules=yes|gap=2em}} * a * b * c * d * e * f * g * h {{Div col end}} ====Small==== <pre> {{Div col|small=yes}} <!-- Small = yes --> * a * b * c * d * e * f * g * h {{Div col end}} </pre> Produces: {{Div col|small=yes}} * a * b * c * d * e * f * g * h {{Div col end}} ====Content==== <pre> {{Div col|colwidth=10em|content= <!-- content parameter doesn't need {{div col end}} --> * a * b * c * d * e * f * g * h }} </pre> Produces: {{Div col|colwidth=10em|content= * a * b * c * d * e * f * g * h }} ====Multiple parameters==== <pre> {{Div col|colwidth=10em|rules=yes|gap=2em|small=yes}} * a * b * c * d * e * f * g * h {{Div col end}} </pre> Produces: {{Div col|colwidth=10em|rules=yes|gap=2em|small=yes}} * a * b * c * d * e * f * g * h {{Div col end}} ==== Text characters without list markup ==== <pre> {{div col|colwidth=10em}} <!--Text characters without list markup --> a b c d e f g h {{div col end}} </pre> Produces {{Div col|colwidth=10em}} a b c d e f g h {{Div col end}} ==== Lorem ipsum ==== <pre> {{div col}} <!--Lorem ipsum --> {{lorem ipsum}} {{div col end}} </pre> Produces {{Div col}} {{lorem ipsum}} {{Div col end}} == Limitation == === Sub-lists === The underlying CSS system is unable to break sub-lists into columns. Note the uneven formatting below: <pre> {{Div col|colwidth=10em|rules=yes|gap=2em|style=column-count:3|content= * a * b * c ** c.d ** c.e ** c.f * g * h }} </pre> Produces: {{Div col|colwidth=10em|rules=yes|gap=2em|style=column-count:3|content= * a * b * c ** c.d ** c.e ** c.f * g * h }} Turning off the {{code|break-inside: avoid-column;}} rule appears to help.<!-- A full page refersh is needed; just F12-ing doesn't work. --> ==Tracking categories== * {{category link with count|Pages using div col with unknown parameters}} (for erroneous use of parameter names not documented here) * {{category link with count|Pages using div col with small parameter}} ==TemplateData== {{TemplateData header}} {{#switch: {{BASEPAGENAME}} |Div col=<templatedata> { "description": "Breaks a list into columns. It automatically breaks each column to an equal space, so you do not manually have to find the half way point on two columns. The list is provided by |content= or closed with {{div col end}}.", "params": { "colwidth": { "label": "Column width", "description": "Specifies the width of columns, and determines dynamically the number of columns based on screen width; more columns will be shown on wider displays.", "type": "string", "example": "30em" }, "rules": { "label": "Rules", "description": "Produces vertical rules between the columns if set to yes.", "type": "string", "example": "yes" }, "gap": { "label": "Gap size", "description": "Specifies the space between the content of adjacent columns.", "type": "string", "example": "2em" }, "class": { "label": "HTML class", "description": "Specifies any class or multiple space-delimited classes.", "type": "string", "example": "plainlist nowrap" }, "style": { "label": "CSS style", "description": "Specifies any custom styling.", "type": "string" }, "content": { "label": "Content", "description": "Specifies the content to divide into columns", "type": "content" }, "small": { "label": "Small font", "description": "Use a smaller font size (90%)", "example": "yes", "type": "string" } } } </templatedata> |Div col end=<templatedata> { "description": "Ends a multi-column list started by {{div col}}. It takes no parameters.", "params": { } } </templatedata> }} ==Redirects== {{#ifeq:{{ROOTPAGENAME}}|Div col| * {{Tlx|Col div}} * {{Tlx|Colbegin}} (but '''not''' {{Tlx|Col begin}} or {{Tlx|Col-begin}}) * {{Tlx|Cols}} * {{Tlx|Div col start}} * {{Tlx|Div col begin}} * {{Tlx|Div-col}} * {{Tlx|Palmares start}} }} {{#ifeq:{{ROOTPAGENAME}}|Div col end| *{{Tlx|Col div end}} *{{Tlx|Colend}} (but '''not''' {{Tlx|Col end}}) *{{Tlx|Div end}} *{{Tlx|Divcol-end}} *{{Tlx|Divcolend}} *{{Tlx|Divend}} *{{Tlx|End div col}} *{{Tlx|EndDivCol}} }} ==See also== {{Column-generating template families}} <includeonly>{{Sandbox other| | <!-- CATEGORIES BELOW THIS LINE, PLEASE: --> [[Category:Multi-column templates]] [[Category:Templates that add a tracking category]] <!--?:-->{{#switch:{{PAGENAME}} |Div col= |Div col end=}} }}</includeonly> 669f943fb4cb12d7993de34efde3e45cd9af8993 Template:Div col/styles.css 10 25 42 41 2022-07-21T19:50:45Z Wikiricky 1 1 revision imported sanitized-css text/css /* {{pp|small=yes}} */ .div-col { margin-top: 0.3em; column-width: 30em; } .div-col-small { font-size: 90%; } .div-col-rules { column-rule: 1px solid #aaa; } /* Reset top margin for lists in div col */ .div-col dl, .div-col ol, .div-col ul { margin-top: 0; } /* Avoid elements breaking between columns See also Template:No col break */ .div-col li, .div-col dd { page-break-inside: avoid; /* Removed from CSS in favor of break-inside c. 2020 */ break-inside: avoid-column; } c6c2dc0cb2bab7a5f7b4eb938eebc5c67df087bc Template:Div col end 10 26 44 43 2022-07-21T19:50:45Z Wikiricky 1 1 revision imported wikitext text/x-wiki <includeonly></div></includeonly><noinclude> {{Documentation|Template:Div col/doc}} </noinclude> 78088d41c21d779e3722f220fcc9773dfbbc1e4f Template:Documentation 10 27 46 45 2022-07-21T19:50:45Z Wikiricky 1 1 revision imported wikitext text/x-wiki {{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}<noinclude> <!-- Add categories to the /doc subpage --> </noinclude> 9e62b964e96c4e3d478edecbfcb3c0338ae8a276 Template:Documentation subpage 10 28 48 47 2022-07-21T19:50:45Z Wikiricky 1 1 revision imported wikitext text/x-wiki <includeonly><!-- -->{{#ifeq:{{lc:{{SUBPAGENAME}}}} |{{{override|doc}}} | <!--(this template has been transcluded on a /doc or /{{{override}}} page)--> </includeonly><!-- -->{{#ifeq:{{{doc-notice|show}}} |show | {{Mbox | type = notice | style = margin-bottom:1.0em; | image = [[File:Edit-copy green.svg|40px|alt=|link=]] | text = {{strong|This is a [[Wikipedia:Template documentation|documentation]] [[Wikipedia:Subpages|subpage]]}} for {{terminate sentence|{{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}}}<br />It contains usage information, [[Wikipedia:Categorization|categories]] and other content that is not part of the original {{#if:{{{text2|}}} |{{{text2}}} |{{#if:{{{text1|}}} |{{{text1}}} |{{#ifeq:{{SUBJECTSPACE}} |{{ns:User}} |{{lc:{{SUBJECTSPACE}}}} template page |{{#if:{{SUBJECTSPACE}} |{{lc:{{SUBJECTSPACE}}}} page|article}}}}}}}}. }} }}<!-- -->{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}<!-- -->{{#if:{{{inhibit|}}} |<!--(don't categorize)--> | <includeonly><!-- -->{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}} | [[Category:{{#switch:{{SUBJECTSPACE}} |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]] | [[Category:Documentation subpages without corresponding pages]] }}<!-- --></includeonly> }}<!-- (completing initial #ifeq: at start of template:) --><includeonly> | <!--(this template has not been transcluded on a /doc or /{{{override}}} page)--> }}<!-- --></includeonly><noinclude>{{Documentation}}</noinclude> 932915be87123dcf74687ffca846a3130a6a52af Template:High-use 10 29 50 49 2022-07-21T19:50:45Z Wikiricky 1 1 revision imported wikitext text/x-wiki {{#invoke:High-use|main|1={{{1|}}}|2={{{2|}}}|all-pages={{{all-pages|}}}|info={{{info|}}}|demo={{{demo|}}}|form={{{form|}}}|expiry={{{expiry|}}}|system={{{system|}}}}}<noinclude> {{Documentation}} <!-- Add categories to the /doc subpage; interwiki links go to Wikidata, thank you! --> </noinclude> dc5ea36aa88cf409e3280bf65dbfc2566faffe29 Template:If empty 10 30 52 51 2022-07-21T19:50:45Z Wikiricky 1 1 revision imported wikitext text/x-wiki {{<includeonly>safesubst:</includeonly>#invoke:If empty|main}}<noinclude>{{Documentation}}</noinclude> 745940b7bdde8a1585c887ee4ee5ce81d98461a4 Template:Longitem 10 31 54 53 2022-07-21T19:50:45Z Wikiricky 1 1 revision imported wikitext text/x-wiki {{#if:{{{1|}}}|<div style="}} display:inline-block; line-height:1.2em; padding:0.1em 0;{{#if:{{{1|}}}|{{{style|}}}">{{{1}}}</div><includeonly>{{#if:{{{2|}}}|[[Category:Pages using Template:Longitem with unnamed style parameter]]}}</includeonly>}}<noinclude> {{documentation}} </noinclude> 6a40580511715660899f98b06460a45f5a42977b Template:Lorem ipsum 10 32 56 55 2022-07-21T19:50:45Z Wikiricky 1 1 revision imported wikitext text/x-wiki {{#ifexpr:{{{1|1}}}>0|{{Lorem ipsum/p-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P1|link={{{link|{{{4|no}}}}}}}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>1|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P2}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>2|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P3}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>3|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P4}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>4|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P5}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>5|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P6}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>6|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P7}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>7|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P8}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>8|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P9}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>9|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P10}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>10|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P11}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>11|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P12}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>12|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P13}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>13|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P14}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>14|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P15}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>15|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P16}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>16|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P17}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>17|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P18}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>18|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P19}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>19|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P20}}{{{3|}}}}}{{Lorem ipsum/p-end-cond|{{{2|}}}|{{{join|}}}}}<includeonly>{{#ifeq:{{{cat|}}}|no||{{Template:Main other|[[Category:Wikipedia articles containing placeholders]]}}}}</includeonly><noinclude> {{Documentation}} <!-- PLEASE ADD CATEGORIES TO THE /doc SUBPAGE, AND INTERWIKIS TO WIKIDATA, THANKS --> </noinclude> 91dbbf4d98efd9dcc6c7e87bedef6086ddcd6e1c Template:Lorem ipsum/P1 10 33 58 57 2022-07-21T19:50:45Z Wikiricky 1 1 revision imported wikitext text/x-wiki {{#ifeq:{{{link|no}}}|yes|[[Lorem ipsum]]|Lorem ipsum}} dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<noinclude>{{pp-template}}</noinclude> df39f3c9a1e5a7c04c8844ba5871733dcf423d99 Template:Lorem ipsum/p-cond 10 34 60 59 2022-07-21T19:50:46Z Wikiricky 1 1 revision imported wikitext text/x-wiki {{#ifeq: {{{2|{{{join|no}}}}}} | yes | | {{#switch: {{#invoke:string|sub|x{{{1|}}}|2|2}} | : | # | * = | #default = <p><!-- -->}} }}</p><noinclude>{{Documentation |content= Conditional paragraph begin. Generates a begin p-tag if needed, depending on ''prefix'' and ''join'': * nothing, in the case of joins; * nothing, where prefix metacharacters are present like (<code>*</code>, <code>#</code>, or <code>:</code>) which must sit in column 1; * a begin p-tag before the first lorem paragraph, in other cases. == Usage == {{tlc|Lorem ipsum/p-cond|''prefix''|''join''}} }}</noinclude> e2485ca32977a604ce4bbb108cdd1ab27daf6659 Template:Lorem ipsum/p-end-cond 10 35 62 61 2022-07-21T19:50:46Z Wikiricky 1 1 revision imported wikitext text/x-wiki {{#ifeq: {{{2|{{{join|no}}}}}} | yes | | {{#switch: {{#invoke:string|sub|x{{{1|}}}|2|2}} | : | # | * = | #default = </p><!-- -->}} }}<noinclude>{{Documentation |content= Conditional paragraph end. Generates an p-tag if needed, depending on ''prefix'' and ''join'': * nothing, in the case of joins; * nothing, where prefix metacharacters are present like (<code>*</code>, <code>#</code>, or <code>:</code>) which must sit in column 1, don't acquire begin-p tags, and therefore don't need an end p-tag; * an end p-tag after the lorem paragraph emitted last, in other cases. == Usage == {{tlc|Lorem ipsum/p-end-cond|''prefix''|''join''}} }}</noinclude> 9baedbe65b1f076b223137136f33de217b8f939f Template:Lua 10 36 64 63 2022-07-21T19:50:46Z Wikiricky 1 1 revision imported wikitext text/x-wiki <includeonly>{{#invoke:Lua banner|main}}</includeonly><noinclude> {{Lua|Module:Lua banner}} {{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude> dba3962144dacd289dbc34f50fbe0a7bf6d7f2f7 Template:Main other 10 37 66 65 2022-07-21T19:50:46Z Wikiricky 1 1 revision imported wikitext text/x-wiki {{#switch: <!--If no or empty "demospace" parameter then detect namespace--> {{#if:{{{demospace|}}} | {{lc: {{{demospace}}} }} <!--Use lower case "demospace"--> | {{#ifeq:{{NAMESPACE}}|{{ns:0}} | main | other }} }} | main = {{{1|}}} | other | #default = {{{2|}}} }}<noinclude> {{documentation}} <!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! --> </noinclude> 86ad907ffeea3cc545159e00cd1f2d6433946450 Template:Maybe 10 38 68 67 2022-07-21T19:50:46Z Wikiricky 1 1 revision imported wikitext text/x-wiki <noinclude>{| class="wikitable" |- |</noinclude>style="background: #FF8; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}" class="table-maybe"|{{{1|Maybe}}}<noinclude> |} {{documentation|Template:Table cell templates/doc}} </noinclude> 513f72a3cd1dbb2421df25f04c55f3064e38ab52 Template:Navbar 10 39 70 69 2022-07-21T19:50:46Z Wikiricky 1 1 revision imported wikitext text/x-wiki <includeonly>{{#invoke:Navbar|navbar}}</includeonly><noinclude> {{documentation}} </noinclude> 868e3566b7e8a9a5a7f3dac75cac429c47de10d3 Template:No 10 40 72 71 2022-07-21T19:50:47Z Wikiricky 1 1 revision imported wikitext text/x-wiki <noinclude>{| class="wikitable" |- |</noinclude>style="background:#FFC7C7;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}" class="table-no"|{{{1|No}}}<noinclude> |} {{documentation}} </noinclude> 653ef43ca2ef84cc0d6d8042d87932e4accdbcab Template:Ombox 10 41 74 73 2022-07-21T19:50:47Z Wikiricky 1 1 revision imported wikitext text/x-wiki {{#invoke:Message box|ombox}}<noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude> 0e54065432d540737b9e56c4e3a8e7f74d4534ea Template:Para 10 42 76 75 2022-07-21T19:50:47Z Wikiricky 1 1 revision imported wikitext text/x-wiki <code class="nowrap" style="{{SAFESUBST:<noinclude />#if:{{{plain|}}}|border: none; background-color: inherit;}} {{SAFESUBST:<noinclude />#if:{{{plain|}}}{{{mxt|}}}{{{green|}}}{{{!mxt|}}}{{{red|}}}|color: {{SAFESUBST:<noinclude />#if:{{{mxt|}}}{{{green|}}}|#006400|{{SAFESUBST:<noinclude />#if:{{{!mxt|}}}{{{red|}}}|#8B0000|inherit}}}};}} {{SAFESUBST:<noinclude />#if:{{{style|}}}|{{{style}}}}}">&#124;{{SAFESUBST:<noinclude />#if:{{{1|}}}|{{{1}}}&#61;}}{{{2|}}}</code><noinclude> {{Documentation}} <!--Categories and interwikis go near the bottom of the /doc subpage.--> </noinclude> 96ef5dce1fb3a5c1b6648eac125a2496944a852e Template:Sandbox other 10 43 78 77 2022-07-21T19:50:47Z Wikiricky 1 1 revision imported wikitext text/x-wiki {{#if:{{#ifeq:{{#invoke:String|sublength|s={{SUBPAGENAME}}|i=0|len=7}}|sandbox|1}}{{#ifeq:{{SUBPAGENAME}}|doc|1}}{{#invoke:String|match|{{PAGENAME}}|/sandbox/styles.css$|plain=false|nomatch=}}|{{{1|}}}|{{{2|}}}}}<!-- --><noinclude>{{documentation}}</noinclude> 91e4ae891d6b791615152c1fbc971414961ba872 Template:Section link 10 44 80 79 2022-07-21T19:50:47Z Wikiricky 1 1 revision imported wikitext text/x-wiki {{#invoke:Section link|main}}<noinclude> {{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude> 8d047e5845f8a9b74a4655b5dd79ca7595a8f88b Template:Small 10 45 82 81 2022-07-21T19:50:47Z Wikiricky 1 1 revision imported wikitext text/x-wiki <span style="font-size:85%;">{{{1}}}</span><includeonly>{{SAFESUBST:#if:{{{1|}}}||[[Category:Pages using small with an empty input parameter]]}}</includeonly><noinclude> {{Documentation}}<!--Categories and interwikis go in the /doc sub-page.--> </noinclude> 76d3535c2917cc3bfb1b032506073faa15e1a480 Template:Smaller 10 46 84 83 2022-07-21T19:50:47Z Wikiricky 1 1 revision imported wikitext text/x-wiki #REDIRECT [[Template:Small]] {{r from merge}} 2209ecdc4a987eb3d73f648941a3daaed04cd5d5 Template:Sup 10 47 86 85 2022-07-21T19:50:48Z Wikiricky 1 1 revision imported wikitext text/x-wiki <includeonly><sup>{{{1}}}</sup></includeonly><noinclude> {{documentation}} <!-- Add cats and interwikis to the /doc subpage, not here! --> </noinclude> d7d0f30bf52c68f2f488db57534de2552c40c938 Template:Tag 10 48 88 87 2022-07-21T19:50:48Z Wikiricky 1 1 revision imported wikitext text/x-wiki <code class="{{#ifeq:{{{wrap|}}}|yes|wrap|nowrap}}" style="{{#ifeq:{{{style|}}}|plain|border:none;background:transparent;|{{{style|}}}}}"><!-- Opening tag -->{{#switch:{{{2|pair}}} |c|close = |e|empty|s|single|v|void |o|open |p|pair = &lt;{{#if:{{{link|}}}|[[HTML element#{{{1|tag}}}|{{{1|tag}}}]]|{{{1|tag}}}}}{{#if:{{{params|{{{attribs|}}}}}}|&#32;{{{params|{{{attribs}}}}}}}} }}<!-- Content between tags -->{{#switch:{{{2|pair}}} |c|close = {{{content|}}} |e|empty|s|single|v|void = &#32;&#47;&gt; |o|open = &gt;{{{content|}}} |p|pair = {{#ifeq:{{{1|tag}}}|!--||&gt;}}{{{content|...}}} }}<!-- Closing tag -->{{#switch:{{{2|pair}}} |e|empty|s|single|v|void |o|open = |c|close |p|pair = {{#ifeq:{{{1|tag}}}|!--|--&gt;|&lt;&#47;{{{1|tag}}}&gt;}} }}<!-- --></code><noinclude> {{Documentation}} </noinclude> eae208bc1612c834de697fa3ee9b343966cf8602 Template:TemplateData header 10 49 90 89 2022-07-21T19:50:48Z Wikiricky 1 1 revision imported wikitext text/x-wiki <div class="templatedata-header">{{#if:{{{noheader|}}}|<!-- noheader: -->{{Template parameter usage|based=y}}|<!-- +header: -->This is the {{#if:{{{nolink|}}}|<!-- +header, nolink TD -->TemplateData|<!-- +header, +link [[TD]]; DEFAULT: -->[[Wikipedia:TemplateData|TemplateData]]}}<!-- e.o. #if:nolink; DEFAULT: --> for this template used by [[mw:Extension:TemplateWizard|TemplateWizard]], [[Wikipedia:VisualEditor|VisualEditor]] and other tools. {{Template parameter usage|based=y}}<!-- e.o. #if:noheader -->}} '''TemplateData for {{{1|{{BASEPAGENAME}}}}}''' </div><includeonly><!-- check parameters -->{{#invoke:Check for unknown parameters|check |unknown={{template other|1=[[Category:Pages using TemplateData header with unknown parameters|_VALUE_]]}} |template=Template:TemplateData header |1 |nolink |noheader |preview=<div class="error" style="font-weight:normal">Unknown parameter '_VALUE_' in [[Template:TemplateData header]].</div> }}<!-- -->{{template other|{{sandbox other|| [[Category:Templates using TemplateData]] }}}}</includeonly><!-- --><noinclude>{{Documentation}}</noinclude> ddfbb4ae793846b96d4c06330417fa6ed4da2adc Template:Template link 10 50 92 91 2022-07-21T19:50:48Z Wikiricky 1 1 revision imported wikitext text/x-wiki &#123;&#123;[[Template:{{{1}}}|{{{1}}}]]&#125;&#125;<noinclude>{{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude> eabbec62efe3044a98ebb3ce9e7d4d43c222351d Template:Template link expanded 10 51 94 93 2022-07-21T19:50:48Z Wikiricky 1 1 revision imported wikitext text/x-wiki {{#Invoke:Template link general|main|code=on}}<noinclude> {{Documentation|1=Template:Tlg/doc |content = {{tlg/doc|tlx}} }} <!-- Add categories to the /doc subpage, not here! --> </noinclude> 6c99696fee02f1da368ed20d2504e19bc15b1c13 Template:Template other 10 52 96 95 2022-07-21T19:50:48Z Wikiricky 1 1 revision imported wikitext text/x-wiki {{#switch: <!--If no or empty "demospace" parameter then detect namespace--> {{#if:{{{demospace|}}} | {{lc: {{{demospace}}} }} <!--Use lower case "demospace"--> | {{#ifeq:{{NAMESPACE}}|{{ns:Template}} | template | other }} }} | template = {{{1|}}} | other | #default = {{{2|}}} }}<!--End switch--><noinclude> {{documentation}} <!-- Add categories and interwikis to the /doc subpage, not here! --> </noinclude> 06fb13d264df967b5232141067eb7d2b67372d76 Template:Template parameter usage 10 53 98 97 2022-07-21T19:50:48Z Wikiricky 1 1 revision imported wikitext text/x-wiki {{#switch:{{{label|}}} |=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{#ifeq:{{yesno-no|{{{lc}}}}}|no|C|c}}lick here] to see a monthly parameter usage report for {{#if:{{{1|}}}|[[Template:{{ROOTPAGENAME:{{{1|}}}}}]]|this template}}{{#ifeq:{{yesno-no|{{{based}}}}}|yes|&#32;based on {{#if:{{{1|}}}|its|this}} TemplateData}}. |None|none=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{#ifeq:{{yesno-no|{{{lc}}}}}|no|P|p}}arameter usage report]{{#ifeq:{{yesno-no|{{{based}}}}}|yes|&#32;based on {{#if:{{{1|}}}|its|this}} TemplateData}} |for|For=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{#ifeq:{{yesno-no|{{{lc}}}}}|no|P|p}}arameter usage report] for {{#if:{{{1|}}}|[[Template:{{ROOTPAGENAME:{{{1|}}}}}]]|[[Template:{{ROOTPAGENAME}}]]}}{{#ifeq:{{yesno-no|{{{based}}}}}|yes|&#32;based on {{#if:{{{1|}}}|its|this}} TemplateData}}. |#default=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{{label|}}}]{{#ifeq:{{yesno-no|{{{based}}}}}|yes|&#32;based on {{#if:{{{1|}}}|its|this}} TemplateData}} }}<noinclude> {{documentation}} </noinclude> b9cdd1b2e409313904f041c38562a3d6221cc017 Template:Tl 10 54 100 99 2022-07-21T19:50:48Z Wikiricky 1 1 revision imported wikitext text/x-wiki #REDIRECT [[Template:Template link]] {{Redirect category shell| {{R from move}} }} d6593bb3b4a866249f55d0f34b047a71fe1f1529 Template:Tlx 10 55 102 101 2022-07-21T19:50:49Z Wikiricky 1 1 revision imported wikitext text/x-wiki #REDIRECT [[Template:Template link expanded]] {{Redirect category shell| {{R from move}} }} 1fec988ceb46cb324af228aac45d7cd25fcc9008 Template:Uses TemplateStyles 10 56 104 103 2022-07-21T19:50:49Z Wikiricky 1 1 revision imported wikitext text/x-wiki <includeonly>{{#invoke:Uses TemplateStyles|main}}</includeonly><noinclude> {{Uses TemplateStyles|Template:Uses TemplateStyles/example.css|nocat=true}} {{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude> 7e26d8f257e302bd8a3dcbe53f52741ae0884f74 Template:Yes 10 57 106 105 2022-07-21T19:50:49Z Wikiricky 1 1 revision imported wikitext text/x-wiki <noinclude> {| class="wikitable" |- |</noinclude>style="background:#9EFF9E;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}" class="table-yes"|{{{1|Yes}}}<noinclude> |} {{documentation}} </noinclude> d235fc79a2e65678ca64fc48366ae7aaddb27d0b Template:Yesno 10 58 108 107 2022-07-21T19:50:49Z Wikiricky 1 1 revision imported wikitext text/x-wiki {{<includeonly>safesubst:</includeonly>#switch: {{<includeonly>safesubst:</includeonly>lc: {{{1|¬}}} }} |no |n |f |false |off |0 = {{{no|<!-- null -->}}} | = {{{blank|{{{no|<!-- null -->}}}}}} |¬ = {{{¬|}}} |yes |y |t |true |on |1 = {{{yes|yes}}} |#default = {{{def|{{{yes|yes}}}}}} }}<noinclude> {{Documentation}} </noinclude> 629c2937bc5cf7cfe13cd2a598582af832782399 Template:Yesno-no 10 59 110 109 2022-07-21T19:50:49Z Wikiricky 1 1 revision imported wikitext text/x-wiki {{safesubst:<noinclude />yesno|{{{1}}}|yes={{{yes|yes}}}|no={{{no|no}}}|blank={{{blank|no}}}|¬={{{¬|no}}}|def={{{def|no}}}}}<noinclude> {{Documentation|Template:Yesno/doc}} <!--Categories go in the doc page referenced above; interwikis go in Wikidata.--> </noinclude> 1ad7b7800da1b867ead8f6ff8cef76e6201b3b56 Module:Arguments 828 60 112 111 2022-07-21T19:50:50Z Wikiricky 1 1 revision imported Scribunto text/plain -- This module provides easy processing of arguments passed to Scribunto from -- #invoke. It is intended for use by other Lua modules, and should not be -- called from #invoke directly. local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local arguments = {} -- Generate four different tidyVal functions, so that we don't have to check the -- options every time we call it. local function tidyValDefault(key, val) if type(val) == 'string' then val = val:match('^%s*(.-)%s*$') if val == '' then return nil else return val end else return val end end local function tidyValTrimOnly(key, val) if type(val) == 'string' then return val:match('^%s*(.-)%s*$') else return val end end local function tidyValRemoveBlanksOnly(key, val) if type(val) == 'string' then if val:find('%S') then return val else return nil end else return val end end local function tidyValNoChange(key, val) return val end local function matchesTitle(given, title) local tp = type( given ) return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title end local translate_mt = { __index = function(t, k) return k end } function arguments.getArgs(frame, options) checkType('getArgs', 1, frame, 'table', true) checkType('getArgs', 2, options, 'table', true) frame = frame or {} options = options or {} --[[ -- Set up argument translation. --]] options.translate = options.translate or {} if getmetatable(options.translate) == nil then setmetatable(options.translate, translate_mt) end if options.backtranslate == nil then options.backtranslate = {} for k,v in pairs(options.translate) do options.backtranslate[v] = k end end if options.backtranslate and getmetatable(options.backtranslate) == nil then setmetatable(options.backtranslate, { __index = function(t, k) if options.translate[k] ~= k then return nil else return k end end }) end --[[ -- Get the argument tables. If we were passed a valid frame object, get the -- frame arguments (fargs) and the parent frame arguments (pargs), depending -- on the options set and on the parent frame's availability. If we weren't -- passed a valid frame object, we are being called from another Lua module -- or from the debug console, so assume that we were passed a table of args -- directly, and assign it to a new variable (luaArgs). --]] local fargs, pargs, luaArgs if type(frame.args) == 'table' and type(frame.getParent) == 'function' then if options.wrappers then --[[ -- The wrappers option makes Module:Arguments look up arguments in -- either the frame argument table or the parent argument table, but -- not both. This means that users can use either the #invoke syntax -- or a wrapper template without the loss of performance associated -- with looking arguments up in both the frame and the parent frame. -- Module:Arguments will look up arguments in the parent frame -- if it finds the parent frame's title in options.wrapper; -- otherwise it will look up arguments in the frame object passed -- to getArgs. --]] local parent = frame:getParent() if not parent then fargs = frame.args else local title = parent:getTitle():gsub('/sandbox$', '') local found = false if matchesTitle(options.wrappers, title) then found = true elseif type(options.wrappers) == 'table' then for _,v in pairs(options.wrappers) do if matchesTitle(v, title) then found = true break end end end -- We test for false specifically here so that nil (the default) acts like true. if found or options.frameOnly == false then pargs = parent.args end if not found or options.parentOnly == false then fargs = frame.args end end else -- options.wrapper isn't set, so check the other options. if not options.parentOnly then fargs = frame.args end if not options.frameOnly then local parent = frame:getParent() pargs = parent and parent.args or nil end end if options.parentFirst then fargs, pargs = pargs, fargs end else luaArgs = frame end -- Set the order of precedence of the argument tables. If the variables are -- nil, nothing will be added to the table, which is how we avoid clashes -- between the frame/parent args and the Lua args. local argTables = {fargs} argTables[#argTables + 1] = pargs argTables[#argTables + 1] = luaArgs --[[ -- Generate the tidyVal function. If it has been specified by the user, we -- use that; if not, we choose one of four functions depending on the -- options chosen. This is so that we don't have to call the options table -- every time the function is called. --]] local tidyVal = options.valueFunc if tidyVal then if type(tidyVal) ~= 'function' then error( "bad value assigned to option 'valueFunc'" .. '(function expected, got ' .. type(tidyVal) .. ')', 2 ) end elseif options.trim ~= false then if options.removeBlanks ~= false then tidyVal = tidyValDefault else tidyVal = tidyValTrimOnly end else if options.removeBlanks ~= false then tidyVal = tidyValRemoveBlanksOnly else tidyVal = tidyValNoChange end end --[[ -- Set up the args, metaArgs and nilArgs tables. args will be the one -- accessed from functions, and metaArgs will hold the actual arguments. Nil -- arguments are memoized in nilArgs, and the metatable connects all of them -- together. --]] local args, metaArgs, nilArgs, metatable = {}, {}, {}, {} setmetatable(args, metatable) local function mergeArgs(tables) --[[ -- Accepts multiple tables as input and merges their keys and values -- into one table. If a value is already present it is not overwritten; -- tables listed earlier have precedence. We are also memoizing nil -- values, which can be overwritten if they are 's' (soft). --]] for _, t in ipairs(tables) do for key, val in pairs(t) do if metaArgs[key] == nil and nilArgs[key] ~= 'h' then local tidiedVal = tidyVal(key, val) if tidiedVal == nil then nilArgs[key] = 's' else metaArgs[key] = tidiedVal end end end end end --[[ -- Define metatable behaviour. Arguments are memoized in the metaArgs table, -- and are only fetched from the argument tables once. Fetching arguments -- from the argument tables is the most resource-intensive step in this -- module, so we try and avoid it where possible. For this reason, nil -- arguments are also memoized, in the nilArgs table. Also, we keep a record -- in the metatable of when pairs and ipairs have been called, so we do not -- run pairs and ipairs on the argument tables more than once. We also do -- not run ipairs on fargs and pargs if pairs has already been run, as all -- the arguments will already have been copied over. --]] metatable.__index = function (t, key) --[[ -- Fetches an argument when the args table is indexed. First we check -- to see if the value is memoized, and if not we try and fetch it from -- the argument tables. When we check memoization, we need to check -- metaArgs before nilArgs, as both can be non-nil at the same time. -- If the argument is not present in metaArgs, we also check whether -- pairs has been run yet. If pairs has already been run, we return nil. -- This is because all the arguments will have already been copied into -- metaArgs by the mergeArgs function, meaning that any other arguments -- must be nil. --]] if type(key) == 'string' then key = options.translate[key] end local val = metaArgs[key] if val ~= nil then return val elseif metatable.donePairs or nilArgs[key] then return nil end for _, argTable in ipairs(argTables) do local argTableVal = tidyVal(key, argTable[key]) if argTableVal ~= nil then metaArgs[key] = argTableVal return argTableVal end end nilArgs[key] = 'h' return nil end metatable.__newindex = function (t, key, val) -- This function is called when a module tries to add a new value to the -- args table, or tries to change an existing value. if type(key) == 'string' then key = options.translate[key] end if options.readOnly then error( 'could not write to argument table key "' .. tostring(key) .. '"; the table is read-only', 2 ) elseif options.noOverwrite and args[key] ~= nil then error( 'could not write to argument table key "' .. tostring(key) .. '"; overwriting existing arguments is not permitted', 2 ) elseif val == nil then --[[ -- If the argument is to be overwritten with nil, we need to erase -- the value in metaArgs, so that __index, __pairs and __ipairs do -- not use a previous existing value, if present; and we also need -- to memoize the nil in nilArgs, so that the value isn't looked -- up in the argument tables if it is accessed again. --]] metaArgs[key] = nil nilArgs[key] = 'h' else metaArgs[key] = val end end local function translatenext(invariant) local k, v = next(invariant.t, invariant.k) invariant.k = k if k == nil then return nil elseif type(k) ~= 'string' or not options.backtranslate then return k, v else local backtranslate = options.backtranslate[k] if backtranslate == nil then -- Skip this one. This is a tail call, so this won't cause stack overflow return translatenext(invariant) else return backtranslate, v end end end metatable.__pairs = function () -- Called when pairs is run on the args table. if not metatable.donePairs then mergeArgs(argTables) metatable.donePairs = true end return translatenext, { t = metaArgs } end local function inext(t, i) -- This uses our __index metamethod local v = t[i + 1] if v ~= nil then return i + 1, v end end metatable.__ipairs = function (t) -- Called when ipairs is run on the args table. return inext, t, 0 end return args end return arguments 3134ecce8429b810d445e29eae115e2ae4c36c53 Module:Check for unknown parameters 828 61 114 113 2022-07-21T19:50:50Z Wikiricky 1 1 revision imported Scribunto text/plain -- This module may be used to compare the arguments passed to the parent -- with a list of arguments, returning a specified result if an argument is -- not on the list local p = {} local function trim(s) return s:match('^%s*(.-)%s*$') end local function isnotempty(s) return s and s:match('%S') end local function clean(text) -- Return text cleaned for display and truncated if too long. -- Strip markers are replaced with dummy text representing the original wikitext. local pos, truncated local function truncate(text) if truncated then return '' end if mw.ustring.len(text) > 25 then truncated = true text = mw.ustring.sub(text, 1, 25) .. '...' end return mw.text.nowiki(text) end local parts = {} for before, tag, remainder in text:gmatch('([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()') do pos = remainder table.insert(parts, truncate(before) .. '&lt;' .. tag .. '&gt;...&lt;/' .. tag .. '&gt;') end table.insert(parts, truncate(text:sub(pos or 1))) return table.concat(parts) end function p._check(args, pargs) if type(args) ~= "table" or type(pargs) ~= "table" then -- TODO: error handling return end -- create the list of known args, regular expressions, and the return string local knownargs = {} local regexps = {} for k, v in pairs(args) do if type(k) == 'number' then v = trim(v) knownargs[v] = 1 elseif k:find('^regexp[1-9][0-9]*$') then table.insert(regexps, '^' .. v .. '$') end end -- loop over the parent args, and make sure they are on the list local ignoreblank = isnotempty(args['ignoreblank']) local showblankpos = isnotempty(args['showblankpositional']) local values = {} for k, v in pairs(pargs) do if type(k) == 'string' and knownargs[k] == nil then local knownflag = false for _, regexp in ipairs(regexps) do if mw.ustring.match(k, regexp) then knownflag = true break end end if not knownflag and ( not ignoreblank or isnotempty(v) ) then table.insert(values, clean(k)) end elseif type(k) == 'number' and knownargs[tostring(k)] == nil then local knownflag = false for _, regexp in ipairs(regexps) do if mw.ustring.match(tostring(k), regexp) then knownflag = true break end end if not knownflag and ( showblankpos or isnotempty(v) ) then table.insert(values, k .. ' = ' .. clean(v)) end end end -- add results to the output tables local res = {} if #values > 0 then local unknown_text = args['unknown'] or 'Found _VALUE_, ' if mw.getCurrentFrame():preprocess( "{{REVISIONID}}" ) == "" then local preview_text = args['preview'] if isnotempty(preview_text) then preview_text = require('Module:If preview')._warning({preview_text}) elseif preview == nil then preview_text = unknown_text end unknown_text = preview_text end for _, v in pairs(values) do -- Fix odd bug for | = which gets stripped to the empty string and -- breaks category links if v == '' then v = ' ' end -- avoid error with v = 'example%2' ("invalid capture index") local r = unknown_text:gsub('_VALUE_', {_VALUE_ = v}) table.insert(res, r) end end return table.concat(res) end function p.check(frame) local args = frame.args local pargs = frame:getParent().args return p._check(args, pargs) end return p 93db6d115d4328d2a5148bb42959105e367b663e Module:Documentation 828 62 116 115 2022-07-21T19:50:51Z Wikiricky 1 1 revision imported Scribunto text/plain -- This module implements {{documentation}}. -- Get required modules. local getArgs = require('Module:Arguments').getArgs -- Get the config table. local cfg = mw.loadData('Module:Documentation/config') local p = {} -- Often-used functions. local ugsub = mw.ustring.gsub ---------------------------------------------------------------------------- -- Helper functions -- -- These are defined as local functions, but are made available in the p -- table for testing purposes. ---------------------------------------------------------------------------- local function message(cfgKey, valArray, expectType) --[[ -- Gets a message from the cfg table and formats it if appropriate. -- The function raises an error if the value from the cfg table is not -- of the type expectType. The default type for expectType is 'string'. -- If the table valArray is present, strings such as $1, $2 etc. in the -- message are substituted with values from the table keys [1], [2] etc. -- For example, if the message "foo-message" had the value 'Foo $2 bar $1.', -- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz." --]] local msg = cfg[cfgKey] expectType = expectType or 'string' if type(msg) ~= expectType then error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2) end if not valArray then return msg end local function getMessageVal(match) match = tonumber(match) return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4) end return ugsub(msg, '$([1-9][0-9]*)', getMessageVal) end p.message = message local function makeWikilink(page, display) if display then return mw.ustring.format('[[%s|%s]]', page, display) else return mw.ustring.format('[[%s]]', page) end end p.makeWikilink = makeWikilink local function makeCategoryLink(cat, sort) local catns = mw.site.namespaces[14].name return makeWikilink(catns .. ':' .. cat, sort) end p.makeCategoryLink = makeCategoryLink local function makeUrlLink(url, display) return mw.ustring.format('[%s %s]', url, display) end p.makeUrlLink = makeUrlLink local function makeToolbar(...) local ret = {} local lim = select('#', ...) if lim < 1 then return nil end for i = 1, lim do ret[#ret + 1] = select(i, ...) end -- 'documentation-toolbar' return '<span class="' .. message('toolbar-class') .. '">(' .. table.concat(ret, ' &#124; ') .. ')</span>' end p.makeToolbar = makeToolbar ---------------------------------------------------------------------------- -- Argument processing ---------------------------------------------------------------------------- local function makeInvokeFunc(funcName) return function (frame) local args = getArgs(frame, { valueFunc = function (key, value) if type(value) == 'string' then value = value:match('^%s*(.-)%s*$') -- Remove whitespace. if key == 'heading' or value ~= '' then return value else return nil end else return value end end }) return p[funcName](args) end end ---------------------------------------------------------------------------- -- Entry points ---------------------------------------------------------------------------- function p.nonexistent(frame) if mw.title.getCurrentTitle().subpageText == 'testcases' then return frame:expandTemplate{title = 'module test cases notice'} else return p.main(frame) end end p.main = makeInvokeFunc('_main') function p._main(args) --[[ -- This function defines logic flow for the module. -- @args - table of arguments passed by the user --]] local env = p.getEnvironment(args) local root = mw.html.create() root :wikitext(p._getModuleWikitext(args, env)) :wikitext(p.protectionTemplate(env)) :wikitext(p.sandboxNotice(args, env)) :tag('div') -- 'documentation-container' :addClass(message('container')) :attr('role', 'complementary') :attr('aria-labelledby', args.heading ~= '' and 'documentation-heading' or nil) :attr('aria-label', args.heading == '' and 'Documentation' or nil) :newline() :tag('div') -- 'documentation' :addClass(message('main-div-classes')) :newline() :wikitext(p._startBox(args, env)) :wikitext(p._content(args, env)) :tag('div') -- 'documentation-clear' :addClass(message('clear')) :done() :newline() :done() :wikitext(p._endBox(args, env)) :done() :wikitext(p.addTrackingCategories(env)) -- 'Module:Documentation/styles.css' return mw.getCurrentFrame():extensionTag ( 'templatestyles', '', {src=cfg['templatestyles'] }) .. tostring(root) end ---------------------------------------------------------------------------- -- Environment settings ---------------------------------------------------------------------------- function p.getEnvironment(args) --[[ -- Returns a table with information about the environment, including title -- objects and other namespace- or path-related data. -- @args - table of arguments passed by the user -- -- Title objects include: -- env.title - the page we are making documentation for (usually the current title) -- env.templateTitle - the template (or module, file, etc.) -- env.docTitle - the /doc subpage. -- env.sandboxTitle - the /sandbox subpage. -- env.testcasesTitle - the /testcases subpage. -- -- Data includes: -- env.protectionLevels - the protection levels table of the title object. -- env.subjectSpace - the number of the title's subject namespace. -- env.docSpace - the number of the namespace the title puts its documentation in. -- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace. -- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template. -- -- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value -- returned will be nil. --]] local env, envFuncs = {}, {} -- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value -- returned by that function is memoized in the env table so that we don't call any of the functions -- more than once. (Nils won't be memoized.) setmetatable(env, { __index = function (t, key) local envFunc = envFuncs[key] if envFunc then local success, val = pcall(envFunc) if success then env[key] = val -- Memoise the value. return val end end return nil end }) function envFuncs.title() -- The title object for the current page, or a test page passed with args.page. local title local titleArg = args.page if titleArg then title = mw.title.new(titleArg) else title = mw.title.getCurrentTitle() end return title end function envFuncs.templateTitle() --[[ -- The template (or module, etc.) title object. -- Messages: -- 'sandbox-subpage' --> 'sandbox' -- 'testcases-subpage' --> 'testcases' --]] local subjectSpace = env.subjectSpace local title = env.title local subpage = title.subpageText if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then return mw.title.makeTitle(subjectSpace, title.baseText) else return mw.title.makeTitle(subjectSpace, title.text) end end function envFuncs.docTitle() --[[ -- Title object of the /doc subpage. -- Messages: -- 'doc-subpage' --> 'doc' --]] local title = env.title local docname = args[1] -- User-specified doc page. local docpage if docname then docpage = docname else docpage = env.docpageBase .. '/' .. message('doc-subpage') end return mw.title.new(docpage) end function envFuncs.sandboxTitle() --[[ -- Title object for the /sandbox subpage. -- Messages: -- 'sandbox-subpage' --> 'sandbox' --]] return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage')) end function envFuncs.testcasesTitle() --[[ -- Title object for the /testcases subpage. -- Messages: -- 'testcases-subpage' --> 'testcases' --]] return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage')) end function envFuncs.protectionLevels() -- The protection levels table of the title object. return env.title.protectionLevels end function envFuncs.subjectSpace() -- The subject namespace number. return mw.site.namespaces[env.title.namespace].subject.id end function envFuncs.docSpace() -- The documentation namespace number. For most namespaces this is the -- same as the subject namespace. However, pages in the Article, File, -- MediaWiki or Category namespaces must have their /doc, /sandbox and -- /testcases pages in talk space. local subjectSpace = env.subjectSpace if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then return subjectSpace + 1 else return subjectSpace end end function envFuncs.docpageBase() -- The base page of the /doc, /sandbox, and /testcases subpages. -- For some namespaces this is the talk page, rather than the template page. local templateTitle = env.templateTitle local docSpace = env.docSpace local docSpaceText = mw.site.namespaces[docSpace].name -- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon. return docSpaceText .. ':' .. templateTitle.text end function envFuncs.compareUrl() -- Diff link between the sandbox and the main template using [[Special:ComparePages]]. local templateTitle = env.templateTitle local sandboxTitle = env.sandboxTitle if templateTitle.exists and sandboxTitle.exists then local compareUrl = mw.uri.fullUrl( 'Special:ComparePages', { page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText} ) return tostring(compareUrl) else return nil end end return env end ---------------------------------------------------------------------------- -- Auxiliary templates ---------------------------------------------------------------------------- p.getModuleWikitext = makeInvokeFunc('_getModuleWikitext') function p._getModuleWikitext(args, env) local currentTitle = mw.title.getCurrentTitle() if currentTitle.contentModel ~= 'Scribunto' then return end pcall(require, currentTitle.prefixedText) -- if it fails, we don't care local moduleWikitext = package.loaded["Module:Module wikitext"] if moduleWikitext then return moduleWikitext.main() end end function p.sandboxNotice(args, env) --[=[ -- Generates a sandbox notice for display above sandbox pages. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'sandbox-notice-image' --> '[[Image:Sandbox.svg|50px|alt=|link=]]' -- 'sandbox-notice-blurb' --> 'This is the $1 for $2.' -- 'sandbox-notice-diff-blurb' --> 'This is the $1 for $2 ($3).' -- 'sandbox-notice-pagetype-template' --> '[[Wikipedia:Template test cases|template sandbox]] page' -- 'sandbox-notice-pagetype-module' --> '[[Wikipedia:Template test cases|module sandbox]] page' -- 'sandbox-notice-pagetype-other' --> 'sandbox page' -- 'sandbox-notice-compare-link-display' --> 'diff' -- 'sandbox-notice-testcases-blurb' --> 'See also the companion subpage for $1.' -- 'sandbox-notice-testcases-link-display' --> 'test cases' -- 'sandbox-category' --> 'Template sandboxes' --]=] local title = env.title local sandboxTitle = env.sandboxTitle local templateTitle = env.templateTitle local subjectSpace = env.subjectSpace if not (subjectSpace and title and sandboxTitle and templateTitle and mw.title.equals(title, sandboxTitle)) then return nil end -- Build the table of arguments to pass to {{ombox}}. We need just two fields, "image" and "text". local omargs = {} omargs.image = message('sandbox-notice-image') -- Get the text. We start with the opening blurb, which is something like -- "This is the template sandbox for [[Template:Foo]] (diff)." local text = '' local pagetype if subjectSpace == 10 then pagetype = message('sandbox-notice-pagetype-template') elseif subjectSpace == 828 then pagetype = message('sandbox-notice-pagetype-module') else pagetype = message('sandbox-notice-pagetype-other') end local templateLink = makeWikilink(templateTitle.prefixedText) local compareUrl = env.compareUrl if compareUrl then local compareDisplay = message('sandbox-notice-compare-link-display') local compareLink = makeUrlLink(compareUrl, compareDisplay) text = text .. message('sandbox-notice-diff-blurb', {pagetype, templateLink, compareLink}) else text = text .. message('sandbox-notice-blurb', {pagetype, templateLink}) end -- Get the test cases page blurb if the page exists. This is something like -- "See also the companion subpage for [[Template:Foo/testcases|test cases]]." local testcasesTitle = env.testcasesTitle if testcasesTitle and testcasesTitle.exists then if testcasesTitle.contentModel == "Scribunto" then local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display') local testcasesRunLinkDisplay = message('sandbox-notice-testcases-run-link-display') local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay) local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay) text = text .. '<br />' .. message('sandbox-notice-testcases-run-blurb', {testcasesLink, testcasesRunLink}) else local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display') local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay) text = text .. '<br />' .. message('sandbox-notice-testcases-blurb', {testcasesLink}) end end -- Add the sandbox to the sandbox category. omargs.text = text .. makeCategoryLink(message('sandbox-category')) -- 'documentation-clear' return '<div class="' .. message('clear') .. '"></div>' .. require('Module:Message box').main('ombox', omargs) end function p.protectionTemplate(env) -- Generates the padlock icon in the top right. -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'protection-template' --> 'pp-template' -- 'protection-template-args' --> {docusage = 'yes'} local protectionLevels = env.protectionLevels if not protectionLevels then return nil end local editProt = protectionLevels.edit and protectionLevels.edit[1] local moveProt = protectionLevels.move and protectionLevels.move[1] if editProt then -- The page is edit-protected. return require('Module:Protection banner')._main{ message('protection-reason-edit'), small = true } elseif moveProt and moveProt ~= 'autoconfirmed' then -- The page is move-protected but not edit-protected. Exclude move -- protection with the level "autoconfirmed", as this is equivalent to -- no move protection at all. return require('Module:Protection banner')._main{ action = 'move', small = true } else return nil end end ---------------------------------------------------------------------------- -- Start box ---------------------------------------------------------------------------- p.startBox = makeInvokeFunc('_startBox') function p._startBox(args, env) --[[ -- This function generates the start box. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make -- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox -- which generate the box HTML. --]] env = env or p.getEnvironment(args) local links local content = args.content if not content or args[1] then -- No need to include the links if the documentation is on the template page itself. local linksData = p.makeStartBoxLinksData(args, env) if linksData then links = p.renderStartBoxLinks(linksData) end end -- Generate the start box html. local data = p.makeStartBoxData(args, env, links) if data then return p.renderStartBox(data) else -- User specified no heading. return nil end end function p.makeStartBoxLinksData(args, env) --[[ -- Does initial processing of data to make the [view] [edit] [history] [purge] links. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'view-link-display' --> 'view' -- 'edit-link-display' --> 'edit' -- 'history-link-display' --> 'history' -- 'purge-link-display' --> 'purge' -- 'module-preload' --> 'Template:Documentation/preload-module-doc' -- 'docpage-preload' --> 'Template:Documentation/preload' -- 'create-link-display' --> 'create' --]] local subjectSpace = env.subjectSpace local title = env.title local docTitle = env.docTitle if not title or not docTitle then return nil end if docTitle.isRedirect then docTitle = docTitle.redirectTarget end local data = {} data.title = title data.docTitle = docTitle -- View, display, edit, and purge links if /doc exists. data.viewLinkDisplay = message('view-link-display') data.editLinkDisplay = message('edit-link-display') data.historyLinkDisplay = message('history-link-display') data.purgeLinkDisplay = message('purge-link-display') -- Create link if /doc doesn't exist. local preload = args.preload if not preload then if subjectSpace == 828 then -- Module namespace preload = message('module-preload') else preload = message('docpage-preload') end end data.preload = preload data.createLinkDisplay = message('create-link-display') return data end function p.renderStartBoxLinks(data) --[[ -- Generates the [view][edit][history][purge] or [create][purge] links from the data table. -- @data - a table of data generated by p.makeStartBoxLinksData --]] local function escapeBrackets(s) -- Escapes square brackets with HTML entities. s = s:gsub('%[', '&#91;') -- Replace square brackets with HTML entities. s = s:gsub('%]', '&#93;') return s end local ret local docTitle = data.docTitle local title = data.title local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay) if docTitle.exists then local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay) local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay) local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay) ret = '[%s] [%s] [%s] [%s]' ret = escapeBrackets(ret) ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink) else local createLink = makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay) ret = '[%s] [%s]' ret = escapeBrackets(ret) ret = mw.ustring.format(ret, createLink, purgeLink) end return ret end function p.makeStartBoxData(args, env, links) --[=[ -- Does initial processing of data to pass to the start-box render function, p.renderStartBox. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error. -- -- Messages: -- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]' -- 'template-namespace-heading' --> 'Template documentation' -- 'module-namespace-heading' --> 'Module documentation' -- 'file-namespace-heading' --> 'Summary' -- 'other-namespaces-heading' --> 'Documentation' -- 'testcases-create-link-display' --> 'create' --]=] local subjectSpace = env.subjectSpace if not subjectSpace then -- Default to an "other namespaces" namespace, so that we get at least some output -- if an error occurs. subjectSpace = 2 end local data = {} -- Heading local heading = args.heading -- Blank values are not removed. if heading == '' then -- Don't display the start box if the heading arg is defined but blank. return nil end if heading then data.heading = heading elseif subjectSpace == 10 then -- Template namespace data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading') elseif subjectSpace == 828 then -- Module namespace data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading') elseif subjectSpace == 6 then -- File namespace data.heading = message('file-namespace-heading') else data.heading = message('other-namespaces-heading') end -- Heading CSS local headingStyle = args['heading-style'] if headingStyle then data.headingStyleText = headingStyle else -- 'documentation-heading' data.headingClass = message('main-div-heading-class') end -- Data for the [view][edit][history][purge] or [create] links. if links then -- 'mw-editsection-like plainlinks' data.linksClass = message('start-box-link-classes') data.links = links end return data end function p.renderStartBox(data) -- Renders the start box html. -- @data - a table of data generated by p.makeStartBoxData. local sbox = mw.html.create('div') sbox -- 'documentation-startbox' :addClass(message('start-box-class')) :newline() :tag('span') :addClass(data.headingClass) :attr('id', 'documentation-heading') :cssText(data.headingStyleText) :wikitext(data.heading) local links = data.links if links then sbox:tag('span') :addClass(data.linksClass) :attr('id', data.linksId) :wikitext(links) end return tostring(sbox) end ---------------------------------------------------------------------------- -- Documentation content ---------------------------------------------------------------------------- p.content = makeInvokeFunc('_content') function p._content(args, env) -- Displays the documentation contents -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment env = env or p.getEnvironment(args) local docTitle = env.docTitle local content = args.content if not content and docTitle and docTitle.exists then content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText} end -- The line breaks below are necessary so that "=== Headings ===" at the start and end -- of docs are interpreted correctly. return '\n' .. (content or '') .. '\n' end p.contentTitle = makeInvokeFunc('_contentTitle') function p._contentTitle(args, env) env = env or p.getEnvironment(args) local docTitle = env.docTitle if not args.content and docTitle and docTitle.exists then return docTitle.prefixedText else return '' end end ---------------------------------------------------------------------------- -- End box ---------------------------------------------------------------------------- p.endBox = makeInvokeFunc('_endBox') function p._endBox(args, env) --[=[ -- This function generates the end box (also known as the link box). -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- --]=] -- Get environment data. env = env or p.getEnvironment(args) local subjectSpace = env.subjectSpace local docTitle = env.docTitle if not subjectSpace or not docTitle then return nil end -- Check whether we should output the end box at all. Add the end -- box by default if the documentation exists or if we are in the -- user, module or template namespaces. local linkBox = args['link box'] if linkBox == 'off' or not ( docTitle.exists or subjectSpace == 2 or subjectSpace == 828 or subjectSpace == 10 ) then return nil end -- Assemble the link box. local text = '' if linkBox then text = text .. linkBox else text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]." if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then -- We are in the user, template or module namespaces. -- Add sandbox and testcases links. -- "Editors can experiment in this template's sandbox and testcases pages." text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />' if not args.content and not args[1] then -- "Please add categories to the /doc subpage." -- Don't show this message with inline docs or with an explicitly specified doc page, -- as then it is unclear where to add the categories. text = text .. (p.makeCategoriesBlurb(args, env) or '') end text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template" end end local box = mw.html.create('div') -- 'documentation-metadata' box:attr('role', 'note') :addClass(message('end-box-class')) -- 'plainlinks' :addClass(message('end-box-plainlinks')) :wikitext(text) :done() return '\n' .. tostring(box) end function p.makeDocPageBlurb(args, env) --[=[ -- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)". -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'edit-link-display' --> 'edit' -- 'history-link-display' --> 'history' -- 'transcluded-from-blurb' --> -- 'The above [[Wikipedia:Template documentation|documentation]] -- is [[Help:Transclusion|transcluded]] from $1.' -- 'module-preload' --> 'Template:Documentation/preload-module-doc' -- 'create-link-display' --> 'create' -- 'create-module-doc-blurb' --> -- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].' --]=] local docTitle = env.docTitle if not docTitle then return nil end local ret if docTitle.exists then -- /doc exists; link to it. local docLink = makeWikilink(docTitle.prefixedText) local editUrl = docTitle:fullUrl{action = 'edit'} local editDisplay = message('edit-link-display') local editLink = makeUrlLink(editUrl, editDisplay) local historyUrl = docTitle:fullUrl{action = 'history'} local historyDisplay = message('history-link-display') local historyLink = makeUrlLink(historyUrl, historyDisplay) ret = message('transcluded-from-blurb', {docLink}) .. ' ' .. makeToolbar(editLink, historyLink) .. '<br />' elseif env.subjectSpace == 828 then -- /doc does not exist; ask to create it. local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')} local createDisplay = message('create-link-display') local createLink = makeUrlLink(createUrl, createDisplay) ret = message('create-module-doc-blurb', {createLink}) .. '<br />' end return ret end function p.makeExperimentBlurb(args, env) --[[ -- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages." -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'sandbox-link-display' --> 'sandbox' -- 'sandbox-edit-link-display' --> 'edit' -- 'compare-link-display' --> 'diff' -- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox' -- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox' -- 'sandbox-create-link-display' --> 'create' -- 'mirror-edit-summary' --> 'Create sandbox version of $1' -- 'mirror-link-display' --> 'mirror' -- 'mirror-link-preload' --> 'Template:Documentation/mirror' -- 'sandbox-link-display' --> 'sandbox' -- 'testcases-link-display' --> 'testcases' -- 'testcases-edit-link-display'--> 'edit' -- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox' -- 'testcases-create-link-display' --> 'create' -- 'testcases-link-display' --> 'testcases' -- 'testcases-edit-link-display' --> 'edit' -- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases' -- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases' -- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.' -- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.' --]] local subjectSpace = env.subjectSpace local templateTitle = env.templateTitle local sandboxTitle = env.sandboxTitle local testcasesTitle = env.testcasesTitle local templatePage = templateTitle.prefixedText if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then return nil end -- Make links. local sandboxLinks, testcasesLinks if sandboxTitle.exists then local sandboxPage = sandboxTitle.prefixedText local sandboxDisplay = message('sandbox-link-display') local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay) local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'} local sandboxEditDisplay = message('sandbox-edit-link-display') local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay) local compareUrl = env.compareUrl local compareLink if compareUrl then local compareDisplay = message('compare-link-display') compareLink = makeUrlLink(compareUrl, compareDisplay) end sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink) else local sandboxPreload if subjectSpace == 828 then sandboxPreload = message('module-sandbox-preload') else sandboxPreload = message('template-sandbox-preload') end local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload} local sandboxCreateDisplay = message('sandbox-create-link-display') local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay) local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)}) local mirrorPreload = message('mirror-link-preload') local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary} if subjectSpace == 828 then mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary} end local mirrorDisplay = message('mirror-link-display') local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay) sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink) end if testcasesTitle.exists then local testcasesPage = testcasesTitle.prefixedText local testcasesDisplay = message('testcases-link-display') local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay) local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'} local testcasesEditDisplay = message('testcases-edit-link-display') local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay) -- for Modules, add testcases run link if exists if testcasesTitle.contentModel == "Scribunto" and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then local testcasesRunLinkDisplay = message('testcases-run-link-display') local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay) testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink) else testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink) end else local testcasesPreload if subjectSpace == 828 then testcasesPreload = message('module-testcases-preload') else testcasesPreload = message('template-testcases-preload') end local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload} local testcasesCreateDisplay = message('testcases-create-link-display') local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay) testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink) end local messageName if subjectSpace == 828 then messageName = 'experiment-blurb-module' else messageName = 'experiment-blurb-template' end return message(messageName, {sandboxLinks, testcasesLinks}) end function p.makeCategoriesBlurb(args, env) --[[ -- Generates the text "Please add categories to the /doc subpage." -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'doc-link-display' --> '/doc' -- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.' --]] local docTitle = env.docTitle if not docTitle then return nil end local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display')) return message('add-categories-blurb', {docPathLink}) end function p.makeSubpagesBlurb(args, env) --[[ -- Generates the "Subpages of this template" link. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'template-pagetype' --> 'template' -- 'module-pagetype' --> 'module' -- 'default-pagetype' --> 'page' -- 'subpages-link-display' --> 'Subpages of this $1' --]] local subjectSpace = env.subjectSpace local templateTitle = env.templateTitle if not subjectSpace or not templateTitle then return nil end local pagetype if subjectSpace == 10 then pagetype = message('template-pagetype') elseif subjectSpace == 828 then pagetype = message('module-pagetype') else pagetype = message('default-pagetype') end local subpagesLink = makeWikilink( 'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/', message('subpages-link-display', {pagetype}) ) return message('subpages-blurb', {subpagesLink}) end ---------------------------------------------------------------------------- -- Tracking categories ---------------------------------------------------------------------------- function p.addTrackingCategories(env) --[[ -- Check if {{documentation}} is transcluded on a /doc or /testcases page. -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'display-strange-usage-category' --> true -- 'doc-subpage' --> 'doc' -- 'testcases-subpage' --> 'testcases' -- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage' -- -- /testcases pages in the module namespace are not categorised, as they may have -- {{documentation}} transcluded automatically. --]] local title = env.title local subjectSpace = env.subjectSpace if not title or not subjectSpace then return nil end local subpage = title.subpageText local ret = '' if message('display-strange-usage-category', nil, 'boolean') and ( subpage == message('doc-subpage') or subjectSpace ~= 828 and subpage == message('testcases-subpage') ) then ret = ret .. makeCategoryLink(message('strange-usage-category')) end return ret end return p 95ab9de543475e37250dc94558a5508a3c7c3dfc Module:Documentation/config 828 63 118 117 2022-07-21T19:50:51Z Wikiricky 1 1 revision imported Scribunto text/plain ---------------------------------------------------------------------------------------------------- -- -- Configuration for Module:Documentation -- -- Here you can set the values of the parameters and messages used in Module:Documentation to -- localise it to your wiki and your language. Unless specified otherwise, values given here -- should be string values. ---------------------------------------------------------------------------------------------------- local cfg = {} -- Do not edit this line. ---------------------------------------------------------------------------------------------------- -- Protection template configuration ---------------------------------------------------------------------------------------------------- -- cfg['protection-reason-edit'] -- The protection reason for edit-protected templates to pass to -- [[Module:Protection banner]]. cfg['protection-reason-edit'] = 'template' --[[ ---------------------------------------------------------------------------------------------------- -- Sandbox notice configuration -- -- On sandbox pages the module can display a template notifying users that the current page is a -- sandbox, and the location of test cases pages, etc. The module decides whether the page is a -- sandbox or not based on the value of cfg['sandbox-subpage']. The following settings configure the -- messages that the notices contains. ---------------------------------------------------------------------------------------------------- --]] -- cfg['sandbox-notice-image'] -- The image displayed in the sandbox notice. cfg['sandbox-notice-image'] = '[[File:Sandbox.svg|50px|alt=|link=]]' --[[ -- cfg['sandbox-notice-pagetype-template'] -- cfg['sandbox-notice-pagetype-module'] -- cfg['sandbox-notice-pagetype-other'] -- The page type of the sandbox page. The message that is displayed depends on the current subject -- namespace. This message is used in either cfg['sandbox-notice-blurb'] or -- cfg['sandbox-notice-diff-blurb']. --]] cfg['sandbox-notice-pagetype-template'] = '[[Wikipedia:Template test cases|template sandbox]] page' cfg['sandbox-notice-pagetype-module'] = '[[Wikipedia:Template test cases|module sandbox]] page' cfg['sandbox-notice-pagetype-other'] = 'sandbox page' --[[ -- cfg['sandbox-notice-blurb'] -- cfg['sandbox-notice-diff-blurb'] -- cfg['sandbox-notice-diff-display'] -- Either cfg['sandbox-notice-blurb'] or cfg['sandbox-notice-diff-blurb'] is the opening sentence -- of the sandbox notice. The latter has a diff link, but the former does not. $1 is the page -- type, which is either cfg['sandbox-notice-pagetype-template'], -- cfg['sandbox-notice-pagetype-module'] or cfg['sandbox-notice-pagetype-other'] depending what -- namespace we are in. $2 is a link to the main template page, and $3 is a diff link between -- the sandbox and the main template. The display value of the diff link is set by -- cfg['sandbox-notice-compare-link-display']. --]] cfg['sandbox-notice-blurb'] = 'This is the $1 for $2.' cfg['sandbox-notice-diff-blurb'] = 'This is the $1 for $2 ($3).' cfg['sandbox-notice-compare-link-display'] = 'diff' --[[ -- cfg['sandbox-notice-testcases-blurb'] -- cfg['sandbox-notice-testcases-link-display'] -- cfg['sandbox-notice-testcases-run-blurb'] -- cfg['sandbox-notice-testcases-run-link-display'] -- cfg['sandbox-notice-testcases-blurb'] is a sentence notifying the user that there is a test cases page -- corresponding to this sandbox that they can edit. $1 is a link to the test cases page. -- cfg['sandbox-notice-testcases-link-display'] is the display value for that link. -- cfg['sandbox-notice-testcases-run-blurb'] is a sentence notifying the user that there is a test cases page -- corresponding to this sandbox that they can edit, along with a link to run it. $1 is a link to the test -- cases page, and $2 is a link to the page to run it. -- cfg['sandbox-notice-testcases-run-link-display'] is the display value for the link to run the test -- cases. --]] cfg['sandbox-notice-testcases-blurb'] = 'See also the companion subpage for $1.' cfg['sandbox-notice-testcases-link-display'] = 'test cases' cfg['sandbox-notice-testcases-run-blurb'] = 'See also the companion subpage for $1 ($2).' cfg['sandbox-notice-testcases-run-link-display'] = 'run' -- cfg['sandbox-category'] -- A category to add to all template sandboxes. cfg['sandbox-category'] = 'Template sandboxes' ---------------------------------------------------------------------------------------------------- -- Start box configuration ---------------------------------------------------------------------------------------------------- -- cfg['documentation-icon-wikitext'] -- The wikitext for the icon shown at the top of the template. cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]' -- cfg['template-namespace-heading'] -- The heading shown in the template namespace. cfg['template-namespace-heading'] = 'Template documentation' -- cfg['module-namespace-heading'] -- The heading shown in the module namespace. cfg['module-namespace-heading'] = 'Module documentation' -- cfg['file-namespace-heading'] -- The heading shown in the file namespace. cfg['file-namespace-heading'] = 'Summary' -- cfg['other-namespaces-heading'] -- The heading shown in other namespaces. cfg['other-namespaces-heading'] = 'Documentation' -- cfg['view-link-display'] -- The text to display for "view" links. cfg['view-link-display'] = 'view' -- cfg['edit-link-display'] -- The text to display for "edit" links. cfg['edit-link-display'] = 'edit' -- cfg['history-link-display'] -- The text to display for "history" links. cfg['history-link-display'] = 'history' -- cfg['purge-link-display'] -- The text to display for "purge" links. cfg['purge-link-display'] = 'purge' -- cfg['create-link-display'] -- The text to display for "create" links. cfg['create-link-display'] = 'create' ---------------------------------------------------------------------------------------------------- -- Link box (end box) configuration ---------------------------------------------------------------------------------------------------- -- cfg['transcluded-from-blurb'] -- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page. cfg['transcluded-from-blurb'] = 'The above [[Wikipedia:Template documentation|documentation]] is [[Help:Transclusion|transcluded]] from $1.' --[[ -- cfg['create-module-doc-blurb'] -- Notice displayed in the module namespace when the documentation subpage does not exist. -- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the -- display cfg['create-link-display']. --]] cfg['create-module-doc-blurb'] = 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].' ---------------------------------------------------------------------------------------------------- -- Experiment blurb configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['experiment-blurb-template'] -- cfg['experiment-blurb-module'] -- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages. -- It is only shown in the template and module namespaces. With the default English settings, it -- might look like this: -- -- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages. -- -- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links. -- -- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending -- on what namespace we are in. -- -- Parameters: -- -- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format: -- -- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display']) -- -- If the sandbox doesn't exist, it is in the format: -- -- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display']) -- -- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload'] -- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display'] -- loads a default edit summary of cfg['mirror-edit-summary']. -- -- $2 is a link to the test cases page. If the test cases page exists, it is in the following format: -- -- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display']) -- -- If the test cases page doesn't exist, it is in the format: -- -- cfg['testcases-link-display'] (cfg['testcases-create-link-display']) -- -- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the -- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current -- namespace. --]] cfg['experiment-blurb-template'] = "Editors can experiment in this template's $1 and $2 pages." cfg['experiment-blurb-module'] = "Editors can experiment in this module's $1 and $2 pages." ---------------------------------------------------------------------------------------------------- -- Sandbox link configuration ---------------------------------------------------------------------------------------------------- -- cfg['sandbox-subpage'] -- The name of the template subpage typically used for sandboxes. cfg['sandbox-subpage'] = 'sandbox' -- cfg['template-sandbox-preload'] -- Preload file for template sandbox pages. cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox' -- cfg['module-sandbox-preload'] -- Preload file for Lua module sandbox pages. cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox' -- cfg['sandbox-link-display'] -- The text to display for "sandbox" links. cfg['sandbox-link-display'] = 'sandbox' -- cfg['sandbox-edit-link-display'] -- The text to display for sandbox "edit" links. cfg['sandbox-edit-link-display'] = 'edit' -- cfg['sandbox-create-link-display'] -- The text to display for sandbox "create" links. cfg['sandbox-create-link-display'] = 'create' -- cfg['compare-link-display'] -- The text to display for "compare" links. cfg['compare-link-display'] = 'diff' -- cfg['mirror-edit-summary'] -- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the -- template page. cfg['mirror-edit-summary'] = 'Create sandbox version of $1' -- cfg['mirror-link-display'] -- The text to display for "mirror" links. cfg['mirror-link-display'] = 'mirror' -- cfg['mirror-link-preload'] -- The page to preload when a user clicks the "mirror" link. cfg['mirror-link-preload'] = 'Template:Documentation/mirror' ---------------------------------------------------------------------------------------------------- -- Test cases link configuration ---------------------------------------------------------------------------------------------------- -- cfg['testcases-subpage'] -- The name of the template subpage typically used for test cases. cfg['testcases-subpage'] = 'testcases' -- cfg['template-testcases-preload'] -- Preload file for template test cases pages. cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases' -- cfg['module-testcases-preload'] -- Preload file for Lua module test cases pages. cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases' -- cfg['testcases-link-display'] -- The text to display for "testcases" links. cfg['testcases-link-display'] = 'testcases' -- cfg['testcases-edit-link-display'] -- The text to display for test cases "edit" links. cfg['testcases-edit-link-display'] = 'edit' -- cfg['testcases-run-link-display'] -- The text to display for test cases "run" links. cfg['testcases-run-link-display'] = 'run' -- cfg['testcases-create-link-display'] -- The text to display for test cases "create" links. cfg['testcases-create-link-display'] = 'create' ---------------------------------------------------------------------------------------------------- -- Add categories blurb configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['add-categories-blurb'] -- Text to direct users to add categories to the /doc subpage. Not used if the "content" or -- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a -- link to the /doc subpage with a display value of cfg['doc-link-display']. --]] cfg['add-categories-blurb'] = 'Add categories to the $1 subpage.' -- cfg['doc-link-display'] -- The text to display when linking to the /doc subpage. cfg['doc-link-display'] = '/doc' ---------------------------------------------------------------------------------------------------- -- Subpages link configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['subpages-blurb'] -- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a -- display value of cfg['subpages-link-display']. In the English version this blurb is simply -- the link followed by a period, and the link display provides the actual text. --]] cfg['subpages-blurb'] = '$1.' --[[ -- cfg['subpages-link-display'] -- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'], -- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in -- the template namespace, the module namespace, or another namespace. --]] cfg['subpages-link-display'] = 'Subpages of this $1' -- cfg['template-pagetype'] -- The pagetype to display for template pages. cfg['template-pagetype'] = 'template' -- cfg['module-pagetype'] -- The pagetype to display for Lua module pages. cfg['module-pagetype'] = 'module' -- cfg['default-pagetype'] -- The pagetype to display for pages other than templates or Lua modules. cfg['default-pagetype'] = 'page' ---------------------------------------------------------------------------------------------------- -- Doc link configuration ---------------------------------------------------------------------------------------------------- -- cfg['doc-subpage'] -- The name of the subpage typically used for documentation pages. cfg['doc-subpage'] = 'doc' -- cfg['docpage-preload'] -- Preload file for template documentation pages in all namespaces. cfg['docpage-preload'] = 'Template:Documentation/preload' -- cfg['module-preload'] -- Preload file for Lua module documentation pages. cfg['module-preload'] = 'Template:Documentation/preload-module-doc' ---------------------------------------------------------------------------------------------------- -- HTML and CSS configuration ---------------------------------------------------------------------------------------------------- -- cfg['templatestyles'] -- The name of the TemplateStyles page where CSS is kept. -- Sandbox CSS will be at Module:Documentation/sandbox/styles.css when needed. cfg['templatestyles'] = 'Module:Documentation/styles.css' -- cfg['container'] -- Class which can be used to set flex or grid CSS on the -- two child divs documentation and documentation-metadata cfg['container'] = 'documentation-container' -- cfg['main-div-classes'] -- Classes added to the main HTML "div" tag. cfg['main-div-classes'] = 'documentation' -- cfg['main-div-heading-class'] -- Class for the main heading for templates and modules and assoc. talk spaces cfg['main-div-heading-class'] = 'documentation-heading' -- cfg['start-box-class'] -- Class for the start box cfg['start-box-class'] = 'documentation-startbox' -- cfg['start-box-link-classes'] -- Classes used for the [view][edit][history] or [create] links in the start box. -- mw-editsection-like is per [[Wikipedia:Village pump (technical)/Archive 117]] cfg['start-box-link-classes'] = 'mw-editsection-like plainlinks' -- cfg['end-box-class'] -- Class for the end box. cfg['end-box-class'] = 'documentation-metadata' -- cfg['end-box-plainlinks'] -- Plainlinks cfg['end-box-plainlinks'] = 'plainlinks' -- cfg['toolbar-class'] -- Class added for toolbar links. cfg['toolbar-class'] = 'documentation-toolbar' -- cfg['clear'] -- Just used to clear things. cfg['clear'] = 'documentation-clear' ---------------------------------------------------------------------------------------------------- -- Tracking category configuration ---------------------------------------------------------------------------------------------------- -- cfg['display-strange-usage-category'] -- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage -- or a /testcases subpage. This should be a boolean value (either true or false). cfg['display-strange-usage-category'] = true -- cfg['strange-usage-category'] -- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a -- /doc subpage or a /testcases subpage. cfg['strange-usage-category'] = 'Wikipedia pages with strange ((documentation)) usage' --[[ ---------------------------------------------------------------------------------------------------- -- End configuration -- -- Don't edit anything below this line. ---------------------------------------------------------------------------------------------------- --]] return cfg 71b68ed73088f1a59d61acf06bbee9fde6677f03 Module:Documentation/styles.css 828 64 120 119 2022-07-21T19:50:52Z Wikiricky 1 1 revision imported sanitized-css text/css /* {{pp|small=yes}} */ .documentation, .documentation-metadata { border: 1px solid #a2a9b1; background-color: #ecfcf4; clear: both; } .documentation { margin: 1em 0 0 0; padding: 1em; } .documentation-metadata { margin: 0.2em 0; /* same margin left-right as .documentation */ font-style: italic; padding: 0.4em 1em; /* same padding left-right as .documentation */ } .documentation-startbox { padding-bottom: 3px; border-bottom: 1px solid #aaa; margin-bottom: 1ex; } .documentation-heading { font-weight: bold; font-size: 125%; } .documentation-clear { /* Don't want things to stick out where they shouldn't. */ clear: both; } .documentation-toolbar { font-style: normal; font-size: 85%; } ce0e629c92e3d825ab9fd927fe6cc37d9117b6cb Module:Effective protection expiry 828 65 122 121 2022-07-21T19:50:52Z Wikiricky 1 1 revision imported Scribunto text/plain local p = {} -- Returns the expiry of a restriction of an action on a given title, or unknown if it cannot be known. -- If no title is specified, the title of the page being displayed is used. function p._main(action, pagename) local title if type(pagename) == 'table' and pagename.prefixedText then title = pagename elseif pagename then title = mw.title.new(pagename) else title = mw.title.getCurrentTitle() end pagename = title.prefixedText if action == 'autoreview' then local stabilitySettings = mw.ext.FlaggedRevs.getStabilitySettings(title) return stabilitySettings and stabilitySettings.expiry or 'unknown' elseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' then error( 'First parameter must be one of edit, move, create, upload, autoreview', 2 ) end local rawExpiry = mw.getCurrentFrame():callParserFunction('PROTECTIONEXPIRY', action, pagename) if rawExpiry == 'infinity' then return 'infinity' elseif rawExpiry == '' then return 'unknown' else local year, month, day, hour, minute, second = rawExpiry:match( '^(%d%d%d%d)(%d%d)(%d%d)(%d%d)(%d%d)(%d%d)$' ) if year then return string.format( '%s-%s-%sT%s:%s:%s', year, month, day, hour, minute, second ) else error('internal error in Module:Effective protection expiry; malformed expiry timestamp') end end end setmetatable(p, { __index = function(t, k) return function(frame) return t._main(k, frame.args[1]) end end }) return p 9a8c58dc2667232ed08a9b206a5d89ca8150312b Module:Effective protection level 828 66 124 123 2022-07-21T19:50:53Z Wikiricky 1 1 revision imported Scribunto text/plain local p = {} -- Returns the permission required to perform a given action on a given title. -- If no title is specified, the title of the page being displayed is used. function p._main(action, pagename) local title if type(pagename) == 'table' and pagename.prefixedText then title = pagename elseif pagename then title = mw.title.new(pagename) else title = mw.title.getCurrentTitle() end pagename = title.prefixedText if action == 'autoreview' then local level = mw.ext.FlaggedRevs.getStabilitySettings(title) level = level and level.autoreview if level == 'review' then return 'reviewer' elseif level ~= '' then return level else return nil -- not '*'. a page not being PC-protected is distinct from it being PC-protected with anyone able to review. also not '', as that would mean PC-protected but nobody can review end elseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' and action ~= 'undelete' then error( 'First parameter must be one of edit, move, create, upload, undelete, autoreview', 2 ) end if title.namespace == 8 then -- MediaWiki namespace if title.text:sub(-3) == '.js' or title.text:sub(-4) == '.css' or title.contentModel == 'javascript' or title.contentModel == 'css' then -- site JS or CSS page return 'interfaceadmin' else -- any non-JS/CSS MediaWiki page return 'sysop' end elseif title.namespace == 2 and title.isSubpage then if title.contentModel == 'javascript' or title.contentModel == 'css' then -- user JS or CSS page return 'interfaceadmin' elseif title.contentModel == 'json' then -- user JSON page return 'sysop' end end if action == 'undelete' then return 'sysop' end local level = title.protectionLevels[action] and title.protectionLevels[action][1] if level == 'sysop' or level == 'editprotected' then return 'sysop' elseif title.cascadingProtection.restrictions[action] and title.cascadingProtection.restrictions[action][1] then -- used by a cascading-protected page return 'sysop' elseif level == 'templateeditor' then return 'templateeditor' elseif action == 'move' then local blacklistentry = mw.ext.TitleBlacklist.test('edit', pagename) -- Testing action edit is correct, since this is for the source page. The target page name gets tested with action move. if blacklistentry and not blacklistentry.params.autoconfirmed then return 'templateeditor' elseif title.namespace == 6 then return 'filemover' elseif level == 'extendedconfirmed' then return 'extendedconfirmed' else return 'autoconfirmed' end end local blacklistentry = mw.ext.TitleBlacklist.test(action, pagename) if blacklistentry then if not blacklistentry.params.autoconfirmed then return 'templateeditor' elseif level == 'extendedconfirmed' then return 'extendedconfirmed' else return 'autoconfirmed' end elseif level == 'editsemiprotected' then -- create-semiprotected pages return this for some reason return 'autoconfirmed' elseif level then return level elseif action == 'upload' then return 'autoconfirmed' elseif action == 'create' and title.namespace % 2 == 0 and title.namespace ~= 118 then -- You need to be registered, but not autoconfirmed, to create non-talk pages other than drafts return 'user' else return '*' end end setmetatable(p, { __index = function(t, k) return function(frame) return t._main(k, frame.args[1]) end end }) return p 70256a489edf6be9808031b14a7e3ef3e025da97 Module:File link 828 67 126 125 2022-07-21T19:50:53Z Wikiricky 1 1 revision imported Scribunto text/plain -- This module provides a library for formatting file wikilinks. local yesno = require('Module:Yesno') local checkType = require('libraryUtil').checkType local p = {} function p._main(args) checkType('_main', 1, args, 'table') -- This is basically libraryUtil.checkTypeForNamedArg, but we are rolling our -- own function to get the right error level. local function checkArg(key, val, level) if type(val) ~= 'string' then error(string.format( "type error in '%s' parameter of '_main' (expected string, got %s)", key, type(val) ), level) end end local ret = {} -- Adds a positional parameter to the buffer. local function addPositional(key) local val = args[key] if not val then return nil end checkArg(key, val, 4) ret[#ret + 1] = val end -- Adds a named parameter to the buffer. We assume that the parameter name -- is the same as the argument key. local function addNamed(key) local val = args[key] if not val then return nil end checkArg(key, val, 4) ret[#ret + 1] = key .. '=' .. val end -- Filename checkArg('file', args.file, 3) ret[#ret + 1] = 'File:' .. args.file -- Format if args.format then checkArg('format', args.format) if args.formatfile then checkArg('formatfile', args.formatfile) ret[#ret + 1] = args.format .. '=' .. args.formatfile else ret[#ret + 1] = args.format end end -- Border if yesno(args.border) then ret[#ret + 1] = 'border' end addPositional('location') addPositional('alignment') addPositional('size') addNamed('upright') addNamed('link') addNamed('alt') addNamed('page') addNamed('class') addNamed('lang') addNamed('start') addNamed('end') addNamed('thumbtime') addPositional('caption') return string.format('[[%s]]', table.concat(ret, '|')) end function p.main(frame) local origArgs = require('Module:Arguments').getArgs(frame, { wrappers = 'Template:File link' }) if not origArgs.file then error("'file' parameter missing from [[Template:File link]]", 0) end -- Copy the arguments that were passed to a new table to avoid looking up -- every possible parameter in the frame object. local args = {} for k, v in pairs(origArgs) do -- Make _BLANK a special argument to add a blank parameter. For use in -- conditional templates etc. it is useful for blank arguments to be -- ignored, but we still need a way to specify them so that we can do -- things like [[File:Example.png|link=]]. if v == '_BLANK' then v = '' end args[k] = v end return p._main(args) end return p 66925f088d11530f2482f04181a3baaaa0ad3d0c Module:High-use 828 68 128 127 2022-07-21T19:50:53Z Wikiricky 1 1 revision imported Scribunto text/plain local p = {} -- _fetch looks at the "demo" argument. local _fetch = require('Module:Transclusion_count').fetch local yesno = require('Module:Yesno') function p.num(frame, count) if count == nil then if yesno(frame.args['fetch']) == false then if (frame.args[1] or '') ~= '' then count = tonumber(frame.args[1]) end else count = _fetch(frame) end end -- Build output string local return_value = "" if count == nil then if frame.args[1] == "risk" then return_value = "a very large number of" else return_value = "many" end else -- Use 2 significant figures for smaller numbers and 3 for larger ones local sigfig = 2 if count >= 100000 then sigfig = 3 end -- Prepare to round to appropriate number of sigfigs local f = math.floor(math.log10(count)) - sigfig + 1 -- Round and insert "approximately" or "+" when appropriate if (frame.args[2] == "yes") or (mw.ustring.sub(frame.args[1],-1) == "+") then -- Round down return_value = string.format("%s+", mw.getContentLanguage():formatNum(math.floor( (count / 10^(f)) ) * (10^(f))) ) else -- Round to nearest return_value = string.format("approximately&#x20;%s", mw.getContentLanguage():formatNum(math.floor( (count / 10^(f)) + 0.5) * (10^(f))) ) end -- Insert percentage of pages if that is likely to be >= 1% and when |no-percent= not set to yes if count and count > 250000 and not yesno (frame:getParent().args['no-percent']) then local percent = math.floor( ( (count/frame:callParserFunction('NUMBEROFPAGES', 'R') ) * 100) + 0.5) if percent >= 1 then return_value = string.format("%s&#x20;pages, or roughly %s%% of all", return_value, percent) end end end return return_value end -- Actions if there is a large (greater than or equal to 100,000) transclusion count function p.risk(frame) local return_value = "" if frame.args[1] == "risk" then return_value = "risk" else local count = _fetch(frame) if count and count >= 100000 then return_value = "risk" end end return return_value end function p.text(frame, count) -- Only show the information about how this template gets updated if someone -- is actually editing the page and maybe trying to update the count. local bot_text = (frame:preprocess("{{REVISIONID}}") == "") and "\n\n----\n'''Preview message''': Transclusion count updated automatically ([[Template:High-use/doc#Technical details|see documentation]])." or '' if count == nil then if yesno(frame.args['fetch']) == false then if (frame.args[1] or '') ~= '' then count = tonumber(frame.args[1]) end else count = _fetch(frame) end end local title = mw.title.getCurrentTitle() if title.subpageText == "doc" or title.subpageText == "sandbox" then title = title.basePageTitle end local systemMessages = frame.args['system'] if frame.args['system'] == '' then systemMessages = nil end -- This retrieves the project URL automatically to simplify localiation. local templateCount = ('on [https://linkcount.toolforge.org/index.php?project=%s&page=%s %s pages]'):format( mw.title.getCurrentTitle():fullUrl():gsub('//(.-)/.*', '%1'), mw.uri.encode(title.fullText), p.num(frame, count)) local used_on_text = "'''This " .. (mw.title.getCurrentTitle().namespace == 828 and "Lua module" or "template") .. ' is used '; if systemMessages then used_on_text = used_on_text .. systemMessages .. ((count and count > 2000) and ("''', and " .. templateCount) or ("'''")) else used_on_text = used_on_text .. templateCount .. "'''" end local sandbox_text = ("%s's [[%s/sandbox|/sandbox]] or [[%s/testcases|/testcases]] subpages, or in your own [[%s]]. "):format( (mw.title.getCurrentTitle().namespace == 828 and "module" or "template"), title.fullText, title.fullText, mw.title.getCurrentTitle().namespace == 828 and "Module:Sandbox|module sandbox" or "Wikipedia:User pages#SUB|user subpage" ) local infoArg = frame.args["info"] ~= "" and frame.args["info"] if (systemMessages or frame.args[1] == "risk" or (count and count >= 100000) ) then local info = systemMessages and '.<br/>Changes to it can cause immediate changes to the Wikipedia user interface.' or '.' if infoArg then info = info .. "<br />" .. infoArg end sandbox_text = info .. '<br /> To avoid major disruption' .. (count and count >= 100000 and ' and server load' or '') .. ', any changes should be tested in the ' .. sandbox_text .. 'The tested changes can be added to this page in a single edit. ' else sandbox_text = (infoArg and ('.<br />' .. infoArg .. ' C') or ' and c') .. 'hanges may be widely noticed. Test changes in the ' .. sandbox_text end local discussion_text = systemMessages and 'Please discuss changes ' or 'Consider discussing changes ' if frame.args["2"] and frame.args["2"] ~= "" and frame.args["2"] ~= "yes" then discussion_text = string.format("%sat [[%s]]", discussion_text, frame.args["2"]) else discussion_text = string.format("%son the [[%s|talk page]]", discussion_text, title.talkPageTitle.fullText ) end return used_on_text .. sandbox_text .. discussion_text .. " before implementing them." .. bot_text end function p.main(frame) local count = nil if yesno(frame.args['fetch']) == false then if (frame.args[1] or '') ~= '' then count = tonumber(frame.args[1]) end else count = _fetch(frame) end local image = "[[File:Ambox warning yellow.svg|40px|alt=Warning|link=]]" local type_param = "style" local epilogue = '' if frame.args['system'] and frame.args['system'] ~= '' then image = "[[File:Ambox important.svg|40px|alt=Warning|link=]]" type_param = "content" local nocat = frame:getParent().args['nocat'] or frame.args['nocat'] local categorise = (nocat == '' or not yesno(nocat)) if categorise then epilogue = frame:preprocess('{{Sandbox other||{{#switch:{{#invoke:Effective protection level|{{#switch:{{NAMESPACE}}|File=upload|#default=edit}}|{{FULLPAGENAME}}}}|sysop|templateeditor|interfaceadmin=|#default=[[Category:Pages used in system messages needing protection]]}}}}') end elseif (frame.args[1] == "risk" or (count and count >= 100000)) then image = "[[File:Ambox warning orange.svg|40px|alt=Warning|link=]]" type_param = "content" end if frame.args["form"] == "editnotice" then return frame:expandTemplate{ title = 'editnotice', args = { ["image"] = image, ["text"] = p.text(frame, count), ["expiry"] = (frame.args["expiry"] or "") } } .. epilogue else return require('Module:Message box').main('ombox', { type = type_param, image = image, text = p.text(frame, count), expiry = (frame.args["expiry"] or "") }) .. epilogue end end return p e65a49e327a83e27b6a35ceff8dce344edee0840 Module:If empty 828 69 130 129 2022-07-21T19:50:54Z Wikiricky 1 1 revision imported Scribunto text/plain local p = {} function p.main(frame) local args = require('Module:Arguments').getArgs(frame, {wrappers = 'Template:If empty', removeBlanks = false}) local lastk = 0 for k,v in ipairs(args) do if v ~= '' then return v end lastk = k end end return p 4bfc0c7c8bf3b63144db1ea12f2260db00421233 Module:List 828 70 132 131 2022-07-21T19:50:54Z Wikiricky 1 1 revision imported Scribunto text/plain -- This module outputs different kinds of lists. At the moment, bulleted, -- unbulleted, horizontal, ordered, and horizontal ordered lists are supported. local libUtil = require('libraryUtil') local checkType = libUtil.checkType local mTableTools = require('Module:TableTools') local p = {} local listTypes = { ['bulleted'] = true, ['unbulleted'] = true, ['horizontal'] = true, ['ordered'] = true, ['horizontal_ordered'] = true } function p.makeListData(listType, args) -- Constructs a data table to be passed to p.renderList. local data = {} -- Classes data.classes = {} if listType == 'horizontal' or listType == 'horizontal_ordered' then table.insert(data.classes, 'hlist hlist-separated') elseif listType == 'unbulleted' then table.insert(data.classes, 'plainlist') end table.insert(data.classes, args.class) -- Main div style data.style = args.style -- Indent for horizontal lists if listType == 'horizontal' or listType == 'horizontal_ordered' then local indent = tonumber(args.indent) indent = indent and indent * 1.6 or 0 if indent > 0 then data.marginLeft = indent .. 'em' end end -- List style types for ordered lists -- This could be "1, 2, 3", "a, b, c", or a number of others. The list style -- type is either set by the "type" attribute or the "list-style-type" CSS -- property. if listType == 'ordered' or listType == 'horizontal_ordered' then data.listStyleType = args.list_style_type or args['list-style-type'] data.type = args['type'] -- Detect invalid type attributes and attempt to convert them to -- list-style-type CSS properties. if data.type and not data.listStyleType and not tostring(data.type):find('^%s*[1AaIi]%s*$') then data.listStyleType = data.type data.type = nil end end -- List tag type if listType == 'ordered' or listType == 'horizontal_ordered' then data.listTag = 'ol' else data.listTag = 'ul' end -- Start number for ordered lists data.start = args.start if listType == 'horizontal_ordered' then -- Apply fix to get start numbers working with horizontal ordered lists. local startNum = tonumber(data.start) if startNum then data.counterReset = 'listitem ' .. tostring(startNum - 1) end end -- List style -- ul_style and ol_style are included for backwards compatibility. No -- distinction is made for ordered or unordered lists. data.listStyle = args.list_style -- List items -- li_style is included for backwards compatibility. item_style was included -- to be easier to understand for non-coders. data.itemStyle = args.item_style or args.li_style data.items = {} for i, num in ipairs(mTableTools.numKeys(args)) do local item = {} item.content = args[num] item.style = args['item' .. tostring(num) .. '_style'] or args['item_style' .. tostring(num)] item.value = args['item' .. tostring(num) .. '_value'] or args['item_value' .. tostring(num)] table.insert(data.items, item) end return data end function p.renderList(data) -- Renders the list HTML. -- Return the blank string if there are no list items. if type(data.items) ~= 'table' or #data.items < 1 then return '' end -- Render the main div tag. local root = mw.html.create('div') for i, class in ipairs(data.classes or {}) do root:addClass(class) end root:css{['margin-left'] = data.marginLeft} if data.style then root:cssText(data.style) end -- Render the list tag. local list = root:tag(data.listTag or 'ul') list :attr{start = data.start, type = data.type} :css{ ['counter-reset'] = data.counterReset, ['list-style-type'] = data.listStyleType } if data.listStyle then list:cssText(data.listStyle) end -- Render the list items for i, t in ipairs(data.items or {}) do local item = list:tag('li') if data.itemStyle then item:cssText(data.itemStyle) end if t.style then item:cssText(t.style) end item :attr{value = t.value} :wikitext(t.content) end return tostring(root) end function p.renderTrackingCategories(args) local isDeprecated = false -- Tracks deprecated parameters. for k, v in pairs(args) do k = tostring(k) if k:find('^item_style%d+$') or k:find('^item_value%d+$') then isDeprecated = true break end end local ret = '' if isDeprecated then ret = ret .. '[[Category:List templates with deprecated parameters]]' end return ret end function p.makeList(listType, args) if not listType or not listTypes[listType] then error(string.format( "bad argument #1 to 'makeList' ('%s' is not a valid list type)", tostring(listType) ), 2) end checkType('makeList', 2, args, 'table') local data = p.makeListData(listType, args) local list = p.renderList(data) local trackingCategories = p.renderTrackingCategories(args) return list .. trackingCategories end for listType in pairs(listTypes) do p[listType] = function (frame) local mArguments = require('Module:Arguments') local origArgs = mArguments.getArgs(frame, { valueFunc = function (key, value) if not value or not mw.ustring.find(value, '%S') then return nil end if mw.ustring.find(value, '^%s*[%*#;:]') then return value else return value:match('^%s*(.-)%s*$') end return nil end }) -- Copy all the arguments to a new table, for faster indexing. local args = {} for k, v in pairs(origArgs) do args[k] = v end return p.makeList(listType, args) end end return p 0d6c114450d0f5b3c1d2171ebeb41ae74f203f88 Module:Lua banner 828 71 134 133 2022-07-21T19:50:55Z Wikiricky 1 1 revision imported Scribunto text/plain -- This module implements the {{lua}} template. local yesno = require('Module:Yesno') local mList = require('Module:List') local mTableTools = require('Module:TableTools') local mMessageBox = require('Module:Message box') local p = {} function p.main(frame) local origArgs = frame:getParent().args local args = {} for k, v in pairs(origArgs) do v = v:match('^%s*(.-)%s*$') if v ~= '' then args[k] = v end end return p._main(args) end function p._main(args) local modules = mTableTools.compressSparseArray(args) local box = p.renderBox(modules) local trackingCategories = p.renderTrackingCategories(args, modules) return box .. trackingCategories end function p.renderBox(modules) local boxArgs = {} if #modules < 1 then boxArgs.text = '<strong class="error">Error: no modules specified</strong>' else local moduleLinks = {} for i, module in ipairs(modules) do moduleLinks[i] = string.format('[[:%s]]', module) local maybeSandbox = mw.title.new(module .. '/sandbox') if maybeSandbox.exists then moduleLinks[i] = moduleLinks[i] .. string.format(' ([[:%s|sandbox]])', maybeSandbox.fullText) end end local moduleList = mList.makeList('bulleted', moduleLinks) local title = mw.title.getCurrentTitle() if title.subpageText == "doc" then title = title.basePageTitle end if title.contentModel == "Scribunto" then boxArgs.text = 'This module depends on the following other modules:' .. moduleList else boxArgs.text = 'This template uses [[Wikipedia:Lua|Lua]]:\n' .. moduleList end end boxArgs.type = 'notice' boxArgs.small = true boxArgs.image = '[[File:Lua-Logo.svg|30px|alt=|link=]]' return mMessageBox.main('mbox', boxArgs) end function p.renderTrackingCategories(args, modules, titleObj) if yesno(args.nocat) then return '' end local cats = {} -- Error category if #modules < 1 then cats[#cats + 1] = 'Lua templates with errors' end -- Lua templates category titleObj = titleObj or mw.title.getCurrentTitle() local subpageBlacklist = { doc = true, sandbox = true, sandbox2 = true, testcases = true } if not subpageBlacklist[titleObj.subpageText] then local protCatName if titleObj.namespace == 10 then local category = args.category if not category then local categories = { ['Module:String'] = 'Templates based on the String Lua module', ['Module:Math'] = 'Templates based on the Math Lua module', ['Module:BaseConvert'] = 'Templates based on the BaseConvert Lua module', ['Module:Citation'] = 'Templates based on the Citation/CS1 Lua module' } categories['Module:Citation/CS1'] = categories['Module:Citation'] category = modules[1] and categories[modules[1]] category = category or 'Lua-based templates' end cats[#cats + 1] = category protCatName = "Templates using under-protected Lua modules" elseif titleObj.namespace == 828 then protCatName = "Modules depending on under-protected modules" end if not args.noprotcat and protCatName then local protLevels = { autoconfirmed = 1, extendedconfirmed = 2, templateeditor = 3, sysop = 4 } local currentProt if titleObj.id ~= 0 then -- id is 0 (page does not exist) if am previewing before creating a template. currentProt = titleObj.protectionLevels["edit"][1] end if currentProt == nil then currentProt = 0 else currentProt = protLevels[currentProt] end for i, module in ipairs(modules) do if module ~= "WP:libraryUtil" then local moduleProt = mw.title.new(module).protectionLevels["edit"][1] if moduleProt == nil then moduleProt = 0 else moduleProt = protLevels[moduleProt] end if moduleProt < currentProt then cats[#cats + 1] = protCatName break end end end end end for i, cat in ipairs(cats) do cats[i] = string.format('[[Category:%s]]', cat) end return table.concat(cats) end return p 6e3bedcc849ff22d4f702708965c39b97d7e8585 Module:Message box 828 72 136 135 2022-07-21T19:50:55Z Wikiricky 1 1 revision imported Scribunto text/plain require('Module:No globals') local getArgs local yesno = require('Module:Yesno') local lang = mw.language.getContentLanguage() local CONFIG_MODULE = 'Module:Message box/configuration' local DEMOSPACES = {talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'} -------------------------------------------------------------------------------- -- Helper functions -------------------------------------------------------------------------------- local function getTitleObject(...) -- Get the title object, passing the function through pcall -- in case we are over the expensive function count limit. local success, title = pcall(mw.title.new, ...) if success then return title end end local function union(t1, t2) -- Returns the union of two arrays. local vals = {} for i, v in ipairs(t1) do vals[v] = true end for i, v in ipairs(t2) do vals[v] = true end local ret = {} for k in pairs(vals) do table.insert(ret, k) end table.sort(ret) return ret end local function getArgNums(args, prefix) local nums = {} for k, v in pairs(args) do local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$') if num then table.insert(nums, tonumber(num)) end end table.sort(nums) return nums end -------------------------------------------------------------------------------- -- Box class definition -------------------------------------------------------------------------------- local MessageBox = {} MessageBox.__index = MessageBox function MessageBox.new(boxType, args, cfg) args = args or {} local obj = {} -- Set the title object and the namespace. obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle() -- Set the config for our box type. obj.cfg = cfg[boxType] if not obj.cfg then local ns = obj.title.namespace -- boxType is "mbox" or invalid input if args.demospace and args.demospace ~= '' then -- implement demospace parameter of mbox local demospace = string.lower(args.demospace) if DEMOSPACES[demospace] then -- use template from DEMOSPACES obj.cfg = cfg[DEMOSPACES[demospace]] elseif string.find( demospace, 'talk' ) then -- demo as a talk page obj.cfg = cfg.tmbox else -- default to ombox obj.cfg = cfg.ombox end elseif ns == 0 then obj.cfg = cfg.ambox -- main namespace elseif ns == 6 then obj.cfg = cfg.imbox -- file namespace elseif ns == 14 then obj.cfg = cfg.cmbox -- category namespace else local nsTable = mw.site.namespaces[ns] if nsTable and nsTable.isTalk then obj.cfg = cfg.tmbox -- any talk namespace else obj.cfg = cfg.ombox -- other namespaces or invalid input end end end -- Set the arguments, and remove all blank arguments except for the ones -- listed in cfg.allowBlankParams. do local newArgs = {} for k, v in pairs(args) do if v ~= '' then newArgs[k] = v end end for i, param in ipairs(obj.cfg.allowBlankParams or {}) do newArgs[param] = args[param] end obj.args = newArgs end -- Define internal data structure. obj.categories = {} obj.classes = {} -- For lazy loading of [[Module:Category handler]]. obj.hasCategories = false return setmetatable(obj, MessageBox) end function MessageBox:addCat(ns, cat, sort) if not cat then return nil end if sort then cat = string.format('[[Category:%s|%s]]', cat, sort) else cat = string.format('[[Category:%s]]', cat) end self.hasCategories = true self.categories[ns] = self.categories[ns] or {} table.insert(self.categories[ns], cat) end function MessageBox:addClass(class) if not class then return nil end table.insert(self.classes, class) end function MessageBox:setParameters() local args = self.args local cfg = self.cfg -- Get type data. self.type = args.type local typeData = cfg.types[self.type] self.invalidTypeError = cfg.showInvalidTypeError and self.type and not typeData typeData = typeData or cfg.types[cfg.default] self.typeClass = typeData.class self.typeImage = typeData.image -- Find if the box has been wrongly substituted. self.isSubstituted = cfg.substCheck and args.subst == 'SUBST' -- Find whether we are using a small message box. self.isSmall = cfg.allowSmall and ( cfg.smallParam and args.small == cfg.smallParam or not cfg.smallParam and yesno(args.small) ) -- Add attributes, classes and styles. self.id = args.id self.name = args.name if self.name then self:addClass('box-' .. string.gsub(self.name,' ','_')) end if yesno(args.plainlinks) ~= false then self:addClass('plainlinks') end for _, class in ipairs(cfg.classes or {}) do self:addClass(class) end if self.isSmall then self:addClass(cfg.smallClass or 'mbox-small') end self:addClass(self.typeClass) self:addClass(args.class) self.style = args.style self.attrs = args.attrs -- Set text style. self.textstyle = args.textstyle -- Find if we are on the template page or not. This functionality is only -- used if useCollapsibleTextFields is set, or if both cfg.templateCategory -- and cfg.templateCategoryRequireName are set. self.useCollapsibleTextFields = cfg.useCollapsibleTextFields if self.useCollapsibleTextFields or cfg.templateCategory and cfg.templateCategoryRequireName then if self.name then local templateName = mw.ustring.match( self.name, '^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$' ) or self.name templateName = 'Template:' .. templateName self.templateTitle = getTitleObject(templateName) end self.isTemplatePage = self.templateTitle and mw.title.equals(self.title, self.templateTitle) end -- Process data for collapsible text fields. At the moment these are only -- used in {{ambox}}. if self.useCollapsibleTextFields then -- Get the self.issue value. if self.isSmall and args.smalltext then self.issue = args.smalltext else local sect if args.sect == '' then sect = 'This ' .. (cfg.sectionDefault or 'page') elseif type(args.sect) == 'string' then sect = 'This ' .. args.sect end local issue = args.issue issue = type(issue) == 'string' and issue ~= '' and issue or nil local text = args.text text = type(text) == 'string' and text or nil local issues = {} table.insert(issues, sect) table.insert(issues, issue) table.insert(issues, text) self.issue = table.concat(issues, ' ') end -- Get the self.talk value. local talk = args.talk -- Show talk links on the template page or template subpages if the talk -- parameter is blank. if talk == '' and self.templateTitle and ( mw.title.equals(self.templateTitle, self.title) or self.title:isSubpageOf(self.templateTitle) ) then talk = '#' elseif talk == '' then talk = nil end if talk then -- If the talk value is a talk page, make a link to that page. Else -- assume that it's a section heading, and make a link to the talk -- page of the current page with that section heading. local talkTitle = getTitleObject(talk) local talkArgIsTalkPage = true if not talkTitle or not talkTitle.isTalkPage then talkArgIsTalkPage = false talkTitle = getTitleObject( self.title.text, mw.site.namespaces[self.title.namespace].talk.id ) end if talkTitle and talkTitle.exists then local talkText if self.isSmall then local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. '#' .. talk) talkText = string.format('([[%s|talk]])', talkLink) else talkText = 'Relevant discussion may be found on' if talkArgIsTalkPage then talkText = string.format( '%s [[%s|%s]].', talkText, talk, talkTitle.prefixedText ) else talkText = string.format( '%s the [[%s#%s|talk page]].', talkText, talkTitle.prefixedText, talk ) end end self.talk = talkText end end -- Get other values. self.fix = args.fix ~= '' and args.fix or nil local date if args.date and args.date ~= '' then date = args.date elseif args.date == '' and self.isTemplatePage then date = lang:formatDate('F Y') end if date then self.date = string.format(" <span class='date-container'><i>(<span class='date'>%s</span>)</i></span>", date) end self.info = args.info if yesno(args.removalnotice) then self.removalNotice = cfg.removalNotice end end -- Set the non-collapsible text field. At the moment this is used by all box -- types other than ambox, and also by ambox when small=yes. if self.isSmall then self.text = args.smalltext or args.text else self.text = args.text end -- Set the below row. self.below = cfg.below and args.below -- General image settings. self.imageCellDiv = not self.isSmall and cfg.imageCellDiv self.imageEmptyCell = cfg.imageEmptyCell -- Left image settings. local imageLeft = self.isSmall and args.smallimage or args.image if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none' or not cfg.imageCheckBlank and imageLeft ~= 'none' then self.imageLeft = imageLeft if not imageLeft then local imageSize = self.isSmall and (cfg.imageSmallSize or '30x30px') or '40x40px' self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage or 'Imbox notice.png', imageSize) end end -- Right image settings. local imageRight = self.isSmall and args.smallimageright or args.imageright if not (cfg.imageRightNone and imageRight == 'none') then self.imageRight = imageRight end -- set templatestyles self.base_templatestyles = cfg.templatestyles self.templatestyles = args.templatestyles end function MessageBox:setMainspaceCategories() local args = self.args local cfg = self.cfg if not cfg.allowMainspaceCategories then return nil end local nums = {} for _, prefix in ipairs{'cat', 'category', 'all'} do args[prefix .. '1'] = args[prefix] nums = union(nums, getArgNums(args, prefix)) end -- The following is roughly equivalent to the old {{Ambox/category}}. local date = args.date date = type(date) == 'string' and date local preposition = 'from' for _, num in ipairs(nums) do local mainCat = args['cat' .. tostring(num)] or args['category' .. tostring(num)] local allCat = args['all' .. tostring(num)] mainCat = type(mainCat) == 'string' and mainCat allCat = type(allCat) == 'string' and allCat if mainCat and date and date ~= '' then local catTitle = string.format('%s %s %s', mainCat, preposition, date) self:addCat(0, catTitle) catTitle = getTitleObject('Category:' .. catTitle) if not catTitle or not catTitle.exists then self:addCat(0, 'Articles with invalid date parameter in template') end elseif mainCat and (not date or date == '') then self:addCat(0, mainCat) end if allCat then self:addCat(0, allCat) end end end function MessageBox:setTemplateCategories() local args = self.args local cfg = self.cfg -- Add template categories. if cfg.templateCategory then if cfg.templateCategoryRequireName then if self.isTemplatePage then self:addCat(10, cfg.templateCategory) end elseif not self.title.isSubpage then self:addCat(10, cfg.templateCategory) end end -- Add template error categories. if cfg.templateErrorCategory then local templateErrorCategory = cfg.templateErrorCategory local templateCat, templateSort if not self.name and not self.title.isSubpage then templateCat = templateErrorCategory elseif self.isTemplatePage then local paramsToCheck = cfg.templateErrorParamsToCheck or {} local count = 0 for i, param in ipairs(paramsToCheck) do if not args[param] then count = count + 1 end end if count > 0 then templateCat = templateErrorCategory templateSort = tostring(count) end if self.categoryNums and #self.categoryNums > 0 then templateCat = templateErrorCategory templateSort = 'C' end end self:addCat(10, templateCat, templateSort) end end function MessageBox:setAllNamespaceCategories() -- Set categories for all namespaces. if self.invalidTypeError then local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort) end if self.isSubstituted then self:addCat('all', 'Pages with incorrectly substituted templates') end end function MessageBox:setCategories() if self.title.namespace == 0 then self:setMainspaceCategories() elseif self.title.namespace == 10 then self:setTemplateCategories() end self:setAllNamespaceCategories() end function MessageBox:renderCategories() if not self.hasCategories then -- No categories added, no need to pass them to Category handler so, -- if it was invoked, it would return the empty string. -- So we shortcut and return the empty string. return "" end -- Convert category tables to strings and pass them through -- [[Module:Category handler]]. return require('Module:Category handler')._main{ main = table.concat(self.categories[0] or {}), template = table.concat(self.categories[10] or {}), all = table.concat(self.categories.all or {}), nocat = self.args.nocat, page = self.args.page } end function MessageBox:export() local root = mw.html.create() -- Add the subst check error. if self.isSubstituted and self.name then root:tag('b') :addClass('error') :wikitext(string.format( 'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.', mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}') )) end local frame = mw.getCurrentFrame() root:wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = self.base_templatestyles }, }) -- Add support for a single custom templatestyles sheet. Undocumented as -- need should be limited and many templates using mbox are substed; we -- don't want to spread templatestyles sheets around to arbitrary places if self.templatestyles then root:wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = self.templatestyles }, }) end -- Create the box table. local boxTable = root:tag('table') boxTable:attr('id', self.id or nil) for i, class in ipairs(self.classes or {}) do boxTable:addClass(class or nil) end boxTable :cssText(self.style or nil) :attr('role', 'presentation') if self.attrs then boxTable:attr(self.attrs) end -- Add the left-hand image. local row = boxTable:tag('tr') if self.imageLeft then local imageLeftCell = row:tag('td'):addClass('mbox-image') if self.imageCellDiv then -- If we are using a div, redefine imageLeftCell so that the image -- is inside it. Divs use style="width: 52px;", which limits the -- image width to 52px. If any images in a div are wider than that, -- they may overlap with the text or cause other display problems. imageLeftCell = imageLeftCell:tag('div'):addClass('mbox-image-div') end imageLeftCell:wikitext(self.imageLeft or nil) elseif self.imageEmptyCell then -- Some message boxes define an empty cell if no image is specified, and -- some don't. The old template code in templates where empty cells are -- specified gives the following hint: "No image. Cell with some width -- or padding necessary for text cell to have 100% width." row:tag('td') :addClass('mbox-empty-cell') end -- Add the text. local textCell = row:tag('td'):addClass('mbox-text') if self.useCollapsibleTextFields then -- The message box uses advanced text parameters that allow things to be -- collapsible. At the moment, only ambox uses this. textCell:cssText(self.textstyle or nil) local textCellDiv = textCell:tag('div') textCellDiv :addClass('mbox-text-span') :wikitext(self.issue or nil) if (self.talk or self.fix) then textCellDiv:tag('span') :addClass('hide-when-compact') :wikitext(self.talk and (' ' .. self.talk) or nil) :wikitext(self.fix and (' ' .. self.fix) or nil) end textCellDiv:wikitext(self.date and (' ' .. self.date) or nil) if self.info and not self.isSmall then textCellDiv :tag('span') :addClass('hide-when-compact') :wikitext(self.info and (' ' .. self.info) or nil) end if self.removalNotice then textCellDiv:tag('span') :addClass('hide-when-compact') :tag('i') :wikitext(string.format(" (%s)", self.removalNotice)) end else -- Default text formatting - anything goes. textCell :cssText(self.textstyle or nil) :wikitext(self.text or nil) end -- Add the right-hand image. if self.imageRight then local imageRightCell = row:tag('td'):addClass('mbox-imageright') if self.imageCellDiv then -- If we are using a div, redefine imageRightCell so that the image -- is inside it. imageRightCell = imageRightCell:tag('div'):addClass('mbox-image-div') end imageRightCell :wikitext(self.imageRight or nil) end -- Add the below row. if self.below then boxTable:tag('tr') :tag('td') :attr('colspan', self.imageRight and '3' or '2') :addClass('mbox-text') :cssText(self.textstyle or nil) :wikitext(self.below or nil) end -- Add error message for invalid type parameters. if self.invalidTypeError then root:tag('div') :addClass('mbox-invalid-type') :wikitext(string.format( 'This message box is using an invalid "type=%s" parameter and needs fixing.', self.type or '' )) end -- Add categories. root:wikitext(self:renderCategories() or nil) return tostring(root) end -------------------------------------------------------------------------------- -- Exports -------------------------------------------------------------------------------- local p, mt = {}, {} function p._exportClasses() -- For testing. return { MessageBox = MessageBox } end function p.main(boxType, args, cfgTables) local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE)) box:setParameters() box:setCategories() return box:export() end function mt.__index(t, k) return function (frame) if not getArgs then getArgs = require('Module:Arguments').getArgs end return t.main(k, getArgs(frame, {trim = false, removeBlanks = false})) end end return setmetatable(p, mt) fd6a8b1a0ac5916465cdf2eb099825f1d006cfba Module:Message box/configuration 828 73 138 137 2022-07-21T19:50:56Z Wikiricky 1 1 revision imported Scribunto text/plain -------------------------------------------------------------------------------- -- Message box configuration -- -- -- -- This module contains configuration data for [[Module:Message box]]. -- -------------------------------------------------------------------------------- return { ambox = { types = { speedy = { class = 'ambox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'ambox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'ambox-content', image = 'Ambox important.svg' }, style = { class = 'ambox-style', image = 'Edit-clear.svg' }, move = { class = 'ambox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'ambox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'ambox-notice', image = 'Information icon4.svg' } }, default = 'notice', allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'}, allowSmall = true, smallParam = 'left', smallClass = 'mbox-small-left', substCheck = true, classes = {'metadata', 'ambox'}, imageEmptyCell = true, imageCheckBlank = true, imageSmallSize = '20x20px', imageCellDiv = true, useCollapsibleTextFields = true, imageRightNone = true, sectionDefault = 'article', allowMainspaceCategories = true, templateCategory = 'Article message templates', templateCategoryRequireName = true, templateErrorCategory = 'Article message templates with missing parameters', templateErrorParamsToCheck = {'issue', 'fix', 'subst'}, removalNotice = '<small>[[Help:Maintenance template removal|Learn how and when to remove this template message]]</small>', templatestyles = 'Module:Message box/ambox.css' }, cmbox = { types = { speedy = { class = 'cmbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'cmbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'cmbox-content', image = 'Ambox important.svg' }, style = { class = 'cmbox-style', image = 'Edit-clear.svg' }, move = { class = 'cmbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'cmbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'cmbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'cmbox'}, imageEmptyCell = true, templatestyles = 'Module:Message box/cmbox.css' }, fmbox = { types = { warning = { class = 'fmbox-warning', image = 'Ambox warning pn.svg' }, editnotice = { class = 'fmbox-editnotice', image = 'Information icon4.svg' }, system = { class = 'fmbox-system', image = 'Information icon4.svg' } }, default = 'system', showInvalidTypeError = true, classes = {'fmbox'}, imageEmptyCell = false, imageRightNone = false, templatestyles = 'Module:Message box/fmbox.css' }, imbox = { types = { speedy = { class = 'imbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'imbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'imbox-content', image = 'Ambox important.svg' }, style = { class = 'imbox-style', image = 'Edit-clear.svg' }, move = { class = 'imbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'imbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, license = { class = 'imbox-license licensetpl', image = 'Imbox license.png' -- @todo We need an SVG version of this }, featured = { class = 'imbox-featured', image = 'Cscr-featured.svg' }, notice = { class = 'imbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'imbox'}, imageEmptyCell = true, below = true, templateCategory = 'File message boxes', templatestyles = 'Module:Message box/imbox.css' }, ombox = { types = { speedy = { class = 'ombox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'ombox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'ombox-content', image = 'Ambox important.svg' }, style = { class = 'ombox-style', image = 'Edit-clear.svg' }, move = { class = 'ombox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'ombox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'ombox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'ombox'}, allowSmall = true, imageEmptyCell = true, imageRightNone = true, templatestyles = 'Module:Message box/ombox.css' }, tmbox = { types = { speedy = { class = 'tmbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'tmbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'tmbox-content', image = 'Ambox important.svg' }, style = { class = 'tmbox-style', image = 'Edit-clear.svg' }, move = { class = 'tmbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'tmbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'tmbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'tmbox'}, allowSmall = true, imageRightNone = true, imageEmptyCell = true, templateCategory = 'Talk message boxes', templatestyles = 'Module:Message box/tmbox.css' } } b6f0151037e6867b577c8cca32ff297e48697a10 Module:Message box/ombox.css 828 74 140 139 2022-07-21T19:50:56Z Wikiricky 1 1 revision imported sanitized-css text/css /* {{pp|small=y}} */ .ombox { margin: 4px 0; border-collapse: collapse; border: 1px solid #a2a9b1; /* Default "notice" gray */ background-color: #f8f9fa; box-sizing: border-box; } /* For the "small=yes" option. */ .ombox.mbox-small { font-size: 88%; line-height: 1.25em; } .ombox-speedy { border: 2px solid #b32424; /* Red */ background-color: #fee7e6; /* Pink */ } .ombox-delete { border: 2px solid #b32424; /* Red */ } .ombox-content { border: 1px solid #f28500; /* Orange */ } .ombox-style { border: 1px solid #fc3; /* Yellow */ } .ombox-move { border: 1px solid #9932cc; /* Purple */ } .ombox-protection { border: 2px solid #a2a9b1; /* Gray-gold */ } .ombox .mbox-text { border: none; /* @noflip */ padding: 0.25em 0.9em; width: 100%; } .ombox .mbox-image { border: none; /* @noflip */ padding: 2px 0 2px 0.9em; text-align: center; } .ombox .mbox-imageright { border: none; /* @noflip */ padding: 2px 0.9em 2px 0; text-align: center; } /* An empty narrow cell */ .ombox .mbox-empty-cell { border: none; padding: 0; width: 1px; } .ombox .mbox-invalid-type { text-align: center; } @media (min-width: 720px) { .ombox { margin: 4px 10%; } .ombox.mbox-small { /* @noflip */ clear: right; /* @noflip */ float: right; /* @noflip */ margin: 4px 0 4px 1em; width: 238px; } } 8fe3df4bb607e699eab2dbd23bd4a1a446391002 Module:Navbar 828 75 142 141 2022-07-21T19:50:56Z Wikiricky 1 1 revision imported Scribunto text/plain local p = {} local cfg = mw.loadData('Module:Navbar/configuration') local function get_title_arg(is_collapsible, template) local title_arg = 1 if is_collapsible then title_arg = 2 end if template then title_arg = 'template' end return title_arg end local function choose_links(template, args) -- The show table indicates the default displayed items. -- view, talk, edit, hist, move, watch -- TODO: Move to configuration. local show = {true, true, true, false, false, false} if template then show[2] = false show[3] = false local index = {t = 2, d = 2, e = 3, h = 4, m = 5, w = 6, talk = 2, edit = 3, hist = 4, move = 5, watch = 6} -- TODO: Consider removing TableTools dependency. for _, v in ipairs(require ('Module:TableTools').compressSparseArray(args)) do local num = index[v] if num then show[num] = true end end end local remove_edit_link = args.noedit if remove_edit_link then show[3] = false end return show end local function add_link(link_description, ul, is_mini, font_style) local l if link_description.url then l = {'[', '', ']'} else l = {'[[', '|', ']]'} end ul:tag('li') :addClass('nv-' .. link_description.full) :wikitext(l[1] .. link_description.link .. l[2]) :tag(is_mini and 'abbr' or 'span') :attr('title', link_description.html_title) :cssText(font_style) :wikitext(is_mini and link_description.mini or link_description.full) :done() :wikitext(l[3]) :done() end local function make_list(title_text, has_brackets, displayed_links, is_mini, font_style) local title = mw.title.new(mw.text.trim(title_text), cfg.title_namespace) if not title then error(cfg.invalid_title .. title_text) end local talkpage = title.talkPageTitle and title.talkPageTitle.fullText or '' -- TODO: Get link_descriptions and show into the configuration module. -- link_descriptions should be easier... local link_descriptions = { { ['mini'] = 'v', ['full'] = 'view', ['html_title'] = 'View this template', ['link'] = title.fullText, ['url'] = false }, { ['mini'] = 't', ['full'] = 'talk', ['html_title'] = 'Discuss this template', ['link'] = talkpage, ['url'] = false }, { ['mini'] = 'e', ['full'] = 'edit', ['html_title'] = 'Edit this template', ['link'] = title:fullUrl('action=edit'), ['url'] = true }, { ['mini'] = 'h', ['full'] = 'hist', ['html_title'] = 'History of this template', ['link'] = title:fullUrl('action=history'), ['url'] = true }, { ['mini'] = 'm', ['full'] = 'move', ['html_title'] = 'Move this template', ['link'] = mw.title.new('Special:Movepage'):fullUrl('target='..title.fullText), ['url'] = true }, { ['mini'] = 'w', ['full'] = 'watch', ['html_title'] = 'Watch this template', ['link'] = title:fullUrl('action=watch'), ['url'] = true } } local ul = mw.html.create('ul') if has_brackets then ul:addClass(cfg.classes.brackets) :cssText(font_style) end for i, _ in ipairs(displayed_links) do if displayed_links[i] then add_link(link_descriptions[i], ul, is_mini, font_style) end end return ul:done() end function p._navbar(args) -- TODO: We probably don't need both fontstyle and fontcolor... local font_style = args.fontstyle local font_color = args.fontcolor local is_collapsible = args.collapsible local is_mini = args.mini local is_plain = args.plain local collapsible_class = nil if is_collapsible then collapsible_class = cfg.classes.collapsible if not is_plain then is_mini = 1 end if font_color then font_style = (font_style or '') .. '; color: ' .. font_color .. ';' end end local navbar_style = args.style local div = mw.html.create():tag('div') div :addClass(cfg.classes.navbar) :addClass(cfg.classes.plainlinks) :addClass(cfg.classes.horizontal_list) :addClass(collapsible_class) -- we made the determination earlier :cssText(navbar_style) if is_mini then div:addClass(cfg.classes.mini) end local box_text = (args.text or cfg.box_text) .. ' ' -- the concatenated space guarantees the box text is separated if not (is_mini or is_plain) then div :tag('span') :addClass(cfg.classes.box_text) :cssText(font_style) :wikitext(box_text) end local template = args.template local displayed_links = choose_links(template, args) local has_brackets = args.brackets local title_arg = get_title_arg(is_collapsible, template) local title_text = args[title_arg] or (':' .. mw.getCurrentFrame():getParent():getTitle()) local list = make_list(title_text, has_brackets, displayed_links, is_mini, font_style) div:node(list) if is_collapsible then local title_text_class if is_mini then title_text_class = cfg.classes.collapsible_title_mini else title_text_class = cfg.classes.collapsible_title_full end div:done() :tag('div') :addClass(title_text_class) :cssText(font_style) :wikitext(args[1]) end return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = cfg.templatestyles } } .. tostring(div:done()) end function p.navbar(frame) return p._navbar(require('Module:Arguments').getArgs(frame)) end return p a5c8d3a8f8beb18984ea7f145ddbdf88a065d23e Module:Navbar/configuration 828 76 144 143 2022-07-21T19:50:57Z Wikiricky 1 1 revision imported Scribunto text/plain return { ['templatestyles'] = 'Module:Navbar/styles.css', ['box_text'] = 'This box: ', -- default text box when not plain or mini ['title_namespace'] = 'Template', -- namespace to default to for title ['invalid_title'] = 'Invalid title ', ['classes'] = { -- set a line to nil if you don't want it ['navbar'] = 'navbar', ['plainlinks'] = 'plainlinks', -- plainlinks ['horizontal_list'] = 'hlist', -- horizontal list class ['mini'] = 'navbar-mini', -- class indicating small links in the navbar ['this_box'] = 'navbar-boxtext', ['brackets'] = 'navbar-brackets', -- 'collapsible' is the key for a class to indicate the navbar is -- setting up the collapsible element in addition to the normal -- navbar. ['collapsible'] = 'navbar-collapse', ['collapsible_title_mini'] = 'navbar-ct-mini', ['collapsible_title_full'] = 'navbar-ct-full' } } bbf3d86b48a5b40835e8e232ae9821e6bca390ec Module:Navbar/styles.css 828 77 146 145 2022-07-21T19:50:57Z Wikiricky 1 1 revision imported sanitized-css text/css /* {{pp|small=yes}} */ .navbar { display: inline; font-size: 88%; font-weight: normal; } .navbar-collapse { float: left; text-align: left; } .navbar-boxtext { word-spacing: 0; } .navbar ul { display: inline-block; white-space: nowrap; line-height: inherit; } .navbar-brackets::before { margin-right: -0.125em; content: '[ '; } .navbar-brackets::after { margin-left: -0.125em; content: ' ]'; } .navbar li { word-spacing: -0.125em; } .navbar a > span, .navbar a > abbr { text-decoration: inherit; } .navbar-mini abbr { font-variant: small-caps; border-bottom: none; text-decoration: none; cursor: inherit; } .navbar-ct-full { font-size: 114%; margin: 0 7em; } .navbar-ct-mini { font-size: 114%; margin: 0 4em; } 9d4056f949b4f0b159e3d40dfb1a5f01e72f9571 Module:No globals 828 78 148 147 2022-07-21T19:50:57Z Wikiricky 1 1 revision imported Scribunto text/plain local mt = getmetatable(_G) or {} function mt.__index (t, k) if k ~= 'arg' then error('Tried to read nil global ' .. tostring(k), 2) end return nil end function mt.__newindex(t, k, v) if k ~= 'arg' then error('Tried to write global ' .. tostring(k), 2) end rawset(t, k, v) end setmetatable(_G, mt) 8ce3969f7d53b08bd00dabe4cc9780bc6afd412a Module:Protection banner 828 79 150 149 2022-07-21T19:50:58Z Wikiricky 1 1 revision imported Scribunto text/plain -- This module implements {{pp-meta}} and its daughter templates such as -- {{pp-dispute}}, {{pp-vandalism}} and {{pp-sock}}. -- Initialise necessary modules. require('Module:No globals') local makeFileLink = require('Module:File link')._main local effectiveProtectionLevel = require('Module:Effective protection level')._main local effectiveProtectionExpiry = require('Module:Effective protection expiry')._main local yesno = require('Module:Yesno') -- Lazily initialise modules and objects we don't always need. local getArgs, makeMessageBox, lang -- Set constants. local CONFIG_MODULE = 'Module:Protection banner/config' -------------------------------------------------------------------------------- -- Helper functions -------------------------------------------------------------------------------- local function makeCategoryLink(cat, sort) if cat then return string.format( '[[%s:%s|%s]]', mw.site.namespaces[14].name, cat, sort ) end end -- Validation function for the expiry and the protection date local function validateDate(dateString, dateType) if not lang then lang = mw.language.getContentLanguage() end local success, result = pcall(lang.formatDate, lang, 'U', dateString) if success then result = tonumber(result) if result then return result end end error(string.format( 'invalid %s: %s', dateType, tostring(dateString) ), 4) end local function makeFullUrl(page, query, display) return string.format( '[%s %s]', tostring(mw.uri.fullUrl(page, query)), display ) end -- Given a directed graph formatted as node -> table of direct successors, -- get a table of all nodes reachable from a given node (though always -- including the given node). local function getReachableNodes(graph, start) local toWalk, retval = {[start] = true}, {} while true do -- Can't use pairs() since we're adding and removing things as we're iterating local k = next(toWalk) -- This always gets the "first" key if k == nil then return retval end toWalk[k] = nil retval[k] = true for _,v in ipairs(graph[k]) do if not retval[v] then toWalk[v] = true end end end end -------------------------------------------------------------------------------- -- Protection class -------------------------------------------------------------------------------- local Protection = {} Protection.__index = Protection Protection.supportedActions = { edit = true, move = true, autoreview = true, upload = true } Protection.bannerConfigFields = { 'text', 'explanation', 'tooltip', 'alt', 'link', 'image' } function Protection.new(args, cfg, title) local obj = {} obj._cfg = cfg obj.title = title or mw.title.getCurrentTitle() -- Set action if not args.action then obj.action = 'edit' elseif Protection.supportedActions[args.action] then obj.action = args.action else error(string.format( 'invalid action: %s', tostring(args.action) ), 3) end -- Set level obj.level = args.demolevel or effectiveProtectionLevel(obj.action, obj.title) if not obj.level or (obj.action == 'move' and obj.level == 'autoconfirmed') then -- Users need to be autoconfirmed to move pages anyway, so treat -- semi-move-protected pages as unprotected. obj.level = '*' end -- Set expiry local effectiveExpiry = effectiveProtectionExpiry(obj.action, obj.title) if effectiveExpiry == 'infinity' then obj.expiry = 'indef' elseif effectiveExpiry ~= 'unknown' then obj.expiry = validateDate(effectiveExpiry, 'expiry date') end -- Set reason if args[1] then obj.reason = mw.ustring.lower(args[1]) if obj.reason:find('|') then error('reasons cannot contain the pipe character ("|")', 3) end end -- Set protection date if args.date then obj.protectionDate = validateDate(args.date, 'protection date') end -- Set banner config do obj.bannerConfig = {} local configTables = {} if cfg.banners[obj.action] then configTables[#configTables + 1] = cfg.banners[obj.action][obj.reason] end if cfg.defaultBanners[obj.action] then configTables[#configTables + 1] = cfg.defaultBanners[obj.action][obj.level] configTables[#configTables + 1] = cfg.defaultBanners[obj.action].default end configTables[#configTables + 1] = cfg.masterBanner for i, field in ipairs(Protection.bannerConfigFields) do for j, t in ipairs(configTables) do if t[field] then obj.bannerConfig[field] = t[field] break end end end end return setmetatable(obj, Protection) end function Protection:isUserScript() -- Whether the page is a user JavaScript or CSS page. local title = self.title return title.namespace == 2 and ( title.contentModel == 'javascript' or title.contentModel == 'css' ) end function Protection:isProtected() return self.level ~= '*' end function Protection:shouldShowLock() -- Whether we should output a banner/padlock return self:isProtected() and not self:isUserScript() end -- Whether this page needs a protection category. Protection.shouldHaveProtectionCategory = Protection.shouldShowLock function Protection:isTemporary() return type(self.expiry) == 'number' end function Protection:makeProtectionCategory() if not self:shouldHaveProtectionCategory() then return '' end local cfg = self._cfg local title = self.title -- Get the expiry key fragment. local expiryFragment if self.expiry == 'indef' then expiryFragment = self.expiry elseif type(self.expiry) == 'number' then expiryFragment = 'temp' end -- Get the namespace key fragment. local namespaceFragment = cfg.categoryNamespaceKeys[title.namespace] if not namespaceFragment and title.namespace % 2 == 1 then namespaceFragment = 'talk' end -- Define the order that key fragments are tested in. This is done with an -- array of tables containing the value to be tested, along with its -- position in the cfg.protectionCategories table. local order = { {val = expiryFragment, keypos = 1}, {val = namespaceFragment, keypos = 2}, {val = self.reason, keypos = 3}, {val = self.level, keypos = 4}, {val = self.action, keypos = 5} } --[[ -- The old protection templates used an ad-hoc protection category system, -- with some templates prioritising namespaces in their categories, and -- others prioritising the protection reason. To emulate this in this module -- we use the config table cfg.reasonsWithNamespacePriority to set the -- reasons for which namespaces have priority over protection reason. -- If we are dealing with one of those reasons, move the namespace table to -- the end of the order table, i.e. give it highest priority. If not, the -- reason should have highest priority, so move that to the end of the table -- instead. --]] table.insert(order, table.remove(order, self.reason and cfg.reasonsWithNamespacePriority[self.reason] and 2 or 3)) --[[ -- Define the attempt order. Inactive subtables (subtables with nil "value" -- fields) are moved to the end, where they will later be given the key -- "all". This is to cut down on the number of table lookups in -- cfg.protectionCategories, which grows exponentially with the number of -- non-nil keys. We keep track of the number of active subtables with the -- noActive parameter. --]] local noActive, attemptOrder do local active, inactive = {}, {} for i, t in ipairs(order) do if t.val then active[#active + 1] = t else inactive[#inactive + 1] = t end end noActive = #active attemptOrder = active for i, t in ipairs(inactive) do attemptOrder[#attemptOrder + 1] = t end end --[[ -- Check increasingly generic key combinations until we find a match. If a -- specific category exists for the combination of key fragments we are -- given, that match will be found first. If not, we keep trying different -- key fragment combinations until we match using the key -- "all-all-all-all-all". -- -- To generate the keys, we index the key subtables using a binary matrix -- with indexes i and j. j is only calculated up to the number of active -- subtables. For example, if there were three active subtables, the matrix -- would look like this, with 0 corresponding to the key fragment "all", and -- 1 corresponding to other key fragments. -- -- j 1 2 3 -- i -- 1 1 1 1 -- 2 0 1 1 -- 3 1 0 1 -- 4 0 0 1 -- 5 1 1 0 -- 6 0 1 0 -- 7 1 0 0 -- 8 0 0 0 -- -- Values of j higher than the number of active subtables are set -- to the string "all". -- -- A key for cfg.protectionCategories is constructed for each value of i. -- The position of the value in the key is determined by the keypos field in -- each subtable. --]] local cats = cfg.protectionCategories for i = 1, 2^noActive do local key = {} for j, t in ipairs(attemptOrder) do if j > noActive then key[t.keypos] = 'all' else local quotient = i / 2 ^ (j - 1) quotient = math.ceil(quotient) if quotient % 2 == 1 then key[t.keypos] = t.val else key[t.keypos] = 'all' end end end key = table.concat(key, '|') local attempt = cats[key] if attempt then return makeCategoryLink(attempt, title.text) end end return '' end function Protection:isIncorrect() local expiry = self.expiry return not self:shouldHaveProtectionCategory() or type(expiry) == 'number' and expiry < os.time() end function Protection:isTemplateProtectedNonTemplate() local action, namespace = self.action, self.title.namespace return self.level == 'templateeditor' and ( (action ~= 'edit' and action ~= 'move') or (namespace ~= 10 and namespace ~= 828) ) end function Protection:makeCategoryLinks() local msg = self._cfg.msg local ret = {self:makeProtectionCategory()} if self:isIncorrect() then ret[#ret + 1] = makeCategoryLink( msg['tracking-category-incorrect'], self.title.text ) end if self:isTemplateProtectedNonTemplate() then ret[#ret + 1] = makeCategoryLink( msg['tracking-category-template'], self.title.text ) end return table.concat(ret) end -------------------------------------------------------------------------------- -- Blurb class -------------------------------------------------------------------------------- local Blurb = {} Blurb.__index = Blurb Blurb.bannerTextFields = { text = true, explanation = true, tooltip = true, alt = true, link = true } function Blurb.new(protectionObj, args, cfg) return setmetatable({ _cfg = cfg, _protectionObj = protectionObj, _args = args }, Blurb) end -- Private methods -- function Blurb:_formatDate(num) -- Formats a Unix timestamp into dd Month, YYYY format. lang = lang or mw.language.getContentLanguage() local success, date = pcall( lang.formatDate, lang, self._cfg.msg['expiry-date-format'] or 'j F Y', '@' .. tostring(num) ) if success then return date end end function Blurb:_getExpandedMessage(msgKey) return self:_substituteParameters(self._cfg.msg[msgKey]) end function Blurb:_substituteParameters(msg) if not self._params then local parameterFuncs = {} parameterFuncs.CURRENTVERSION = self._makeCurrentVersionParameter parameterFuncs.EDITREQUEST = self._makeEditRequestParameter parameterFuncs.EXPIRY = self._makeExpiryParameter parameterFuncs.EXPLANATIONBLURB = self._makeExplanationBlurbParameter parameterFuncs.IMAGELINK = self._makeImageLinkParameter parameterFuncs.INTROBLURB = self._makeIntroBlurbParameter parameterFuncs.INTROFRAGMENT = self._makeIntroFragmentParameter parameterFuncs.PAGETYPE = self._makePagetypeParameter parameterFuncs.PROTECTIONBLURB = self._makeProtectionBlurbParameter parameterFuncs.PROTECTIONDATE = self._makeProtectionDateParameter parameterFuncs.PROTECTIONLEVEL = self._makeProtectionLevelParameter parameterFuncs.PROTECTIONLOG = self._makeProtectionLogParameter parameterFuncs.TALKPAGE = self._makeTalkPageParameter parameterFuncs.TOOLTIPBLURB = self._makeTooltipBlurbParameter parameterFuncs.TOOLTIPFRAGMENT = self._makeTooltipFragmentParameter parameterFuncs.VANDAL = self._makeVandalTemplateParameter self._params = setmetatable({}, { __index = function (t, k) local param if parameterFuncs[k] then param = parameterFuncs[k](self) end param = param or '' t[k] = param return param end }) end msg = msg:gsub('${(%u+)}', self._params) return msg end function Blurb:_makeCurrentVersionParameter() -- A link to the page history or the move log, depending on the kind of -- protection. local pagename = self._protectionObj.title.prefixedText if self._protectionObj.action == 'move' then -- We need the move log link. return makeFullUrl( 'Special:Log', {type = 'move', page = pagename}, self:_getExpandedMessage('current-version-move-display') ) else -- We need the history link. return makeFullUrl( pagename, {action = 'history'}, self:_getExpandedMessage('current-version-edit-display') ) end end function Blurb:_makeEditRequestParameter() local mEditRequest = require('Module:Submit an edit request') local action = self._protectionObj.action local level = self._protectionObj.level -- Get the edit request type. local requestType if action == 'edit' then if level == 'autoconfirmed' then requestType = 'semi' elseif level == 'extendedconfirmed' then requestType = 'extended' elseif level == 'templateeditor' then requestType = 'template' end end requestType = requestType or 'full' -- Get the display value. local display = self:_getExpandedMessage('edit-request-display') return mEditRequest._link{type = requestType, display = display} end function Blurb:_makeExpiryParameter() local expiry = self._protectionObj.expiry if type(expiry) == 'number' then return self:_formatDate(expiry) else return expiry end end function Blurb:_makeExplanationBlurbParameter() -- Cover special cases first. if self._protectionObj.title.namespace == 8 then -- MediaWiki namespace return self:_getExpandedMessage('explanation-blurb-nounprotect') end -- Get explanation blurb table keys local action = self._protectionObj.action local level = self._protectionObj.level local talkKey = self._protectionObj.title.isTalkPage and 'talk' or 'subject' -- Find the message in the explanation blurb table and substitute any -- parameters. local explanations = self._cfg.explanationBlurbs local msg if explanations[action][level] and explanations[action][level][talkKey] then msg = explanations[action][level][talkKey] elseif explanations[action][level] and explanations[action][level].default then msg = explanations[action][level].default elseif explanations[action].default and explanations[action].default[talkKey] then msg = explanations[action].default[talkKey] elseif explanations[action].default and explanations[action].default.default then msg = explanations[action].default.default else error(string.format( 'could not find explanation blurb for action "%s", level "%s" and talk key "%s"', action, level, talkKey ), 8) end return self:_substituteParameters(msg) end function Blurb:_makeImageLinkParameter() local imageLinks = self._cfg.imageLinks local action = self._protectionObj.action local level = self._protectionObj.level local msg if imageLinks[action][level] then msg = imageLinks[action][level] elseif imageLinks[action].default then msg = imageLinks[action].default else msg = imageLinks.edit.default end return self:_substituteParameters(msg) end function Blurb:_makeIntroBlurbParameter() if self._protectionObj:isTemporary() then return self:_getExpandedMessage('intro-blurb-expiry') else return self:_getExpandedMessage('intro-blurb-noexpiry') end end function Blurb:_makeIntroFragmentParameter() if self._protectionObj:isTemporary() then return self:_getExpandedMessage('intro-fragment-expiry') else return self:_getExpandedMessage('intro-fragment-noexpiry') end end function Blurb:_makePagetypeParameter() local pagetypes = self._cfg.pagetypes return pagetypes[self._protectionObj.title.namespace] or pagetypes.default or error('no default pagetype defined', 8) end function Blurb:_makeProtectionBlurbParameter() local protectionBlurbs = self._cfg.protectionBlurbs local action = self._protectionObj.action local level = self._protectionObj.level local msg if protectionBlurbs[action][level] then msg = protectionBlurbs[action][level] elseif protectionBlurbs[action].default then msg = protectionBlurbs[action].default elseif protectionBlurbs.edit.default then msg = protectionBlurbs.edit.default else error('no protection blurb defined for protectionBlurbs.edit.default', 8) end return self:_substituteParameters(msg) end function Blurb:_makeProtectionDateParameter() local protectionDate = self._protectionObj.protectionDate if type(protectionDate) == 'number' then return self:_formatDate(protectionDate) else return protectionDate end end function Blurb:_makeProtectionLevelParameter() local protectionLevels = self._cfg.protectionLevels local action = self._protectionObj.action local level = self._protectionObj.level local msg if protectionLevels[action][level] then msg = protectionLevels[action][level] elseif protectionLevels[action].default then msg = protectionLevels[action].default elseif protectionLevels.edit.default then msg = protectionLevels.edit.default else error('no protection level defined for protectionLevels.edit.default', 8) end return self:_substituteParameters(msg) end function Blurb:_makeProtectionLogParameter() local pagename = self._protectionObj.title.prefixedText if self._protectionObj.action == 'autoreview' then -- We need the pending changes log. return makeFullUrl( 'Special:Log', {type = 'stable', page = pagename}, self:_getExpandedMessage('pc-log-display') ) else -- We need the protection log. return makeFullUrl( 'Special:Log', {type = 'protect', page = pagename}, self:_getExpandedMessage('protection-log-display') ) end end function Blurb:_makeTalkPageParameter() return string.format( '[[%s:%s#%s|%s]]', mw.site.namespaces[self._protectionObj.title.namespace].talk.name, self._protectionObj.title.text, self._args.section or 'top', self:_getExpandedMessage('talk-page-link-display') ) end function Blurb:_makeTooltipBlurbParameter() if self._protectionObj:isTemporary() then return self:_getExpandedMessage('tooltip-blurb-expiry') else return self:_getExpandedMessage('tooltip-blurb-noexpiry') end end function Blurb:_makeTooltipFragmentParameter() if self._protectionObj:isTemporary() then return self:_getExpandedMessage('tooltip-fragment-expiry') else return self:_getExpandedMessage('tooltip-fragment-noexpiry') end end function Blurb:_makeVandalTemplateParameter() return mw.getCurrentFrame():expandTemplate{ title="vandal-m", args={self._args.user or self._protectionObj.title.baseText} } end -- Public methods -- function Blurb:makeBannerText(key) -- Validate input. if not key or not Blurb.bannerTextFields[key] then error(string.format( '"%s" is not a valid banner config field', tostring(key) ), 2) end -- Generate the text. local msg = self._protectionObj.bannerConfig[key] if type(msg) == 'string' then return self:_substituteParameters(msg) elseif type(msg) == 'function' then msg = msg(self._protectionObj, self._args) if type(msg) ~= 'string' then error(string.format( 'bad output from banner config function with key "%s"' .. ' (expected string, got %s)', tostring(key), type(msg) ), 4) end return self:_substituteParameters(msg) end end -------------------------------------------------------------------------------- -- BannerTemplate class -------------------------------------------------------------------------------- local BannerTemplate = {} BannerTemplate.__index = BannerTemplate function BannerTemplate.new(protectionObj, cfg) local obj = {} obj._cfg = cfg -- Set the image filename. local imageFilename = protectionObj.bannerConfig.image if imageFilename then obj._imageFilename = imageFilename else -- If an image filename isn't specified explicitly in the banner config, -- generate it from the protection status and the namespace. local action = protectionObj.action local level = protectionObj.level local namespace = protectionObj.title.namespace local reason = protectionObj.reason -- Deal with special cases first. if ( namespace == 10 or namespace == 828 or reason and obj._cfg.indefImageReasons[reason] ) and action == 'edit' and level == 'sysop' and not protectionObj:isTemporary() then -- Fully protected modules and templates get the special red "indef" -- padlock. obj._imageFilename = obj._cfg.msg['image-filename-indef'] else -- Deal with regular protection types. local images = obj._cfg.images if images[action] then if images[action][level] then obj._imageFilename = images[action][level] elseif images[action].default then obj._imageFilename = images[action].default end end end end return setmetatable(obj, BannerTemplate) end function BannerTemplate:renderImage() local filename = self._imageFilename or self._cfg.msg['image-filename-default'] or 'Transparent.gif' return makeFileLink{ file = filename, size = (self.imageWidth or 20) .. 'px', alt = self._imageAlt, link = self._imageLink, caption = self.imageCaption } end -------------------------------------------------------------------------------- -- Banner class -------------------------------------------------------------------------------- local Banner = setmetatable({}, BannerTemplate) Banner.__index = Banner function Banner.new(protectionObj, blurbObj, cfg) local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn't need the blurb. obj.imageWidth = 40 obj.imageCaption = blurbObj:makeBannerText('alt') -- Large banners use the alt text for the tooltip. obj._reasonText = blurbObj:makeBannerText('text') obj._explanationText = blurbObj:makeBannerText('explanation') obj._page = protectionObj.title.prefixedText -- Only makes a difference in testing. return setmetatable(obj, Banner) end function Banner:__tostring() -- Renders the banner. makeMessageBox = makeMessageBox or require('Module:Message box').main local reasonText = self._reasonText or error('no reason text set', 2) local explanationText = self._explanationText local mbargs = { page = self._page, type = 'protection', image = self:renderImage(), text = string.format( "'''%s'''%s", reasonText, explanationText and '<br />' .. explanationText or '' ) } return makeMessageBox('mbox', mbargs) end -------------------------------------------------------------------------------- -- Padlock class -------------------------------------------------------------------------------- local Padlock = setmetatable({}, BannerTemplate) Padlock.__index = Padlock function Padlock.new(protectionObj, blurbObj, cfg) local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn't need the blurb. obj.imageWidth = 20 obj.imageCaption = blurbObj:makeBannerText('tooltip') obj._imageAlt = blurbObj:makeBannerText('alt') obj._imageLink = blurbObj:makeBannerText('link') obj._indicatorName = cfg.padlockIndicatorNames[protectionObj.action] or cfg.padlockIndicatorNames.default or 'pp-default' return setmetatable(obj, Padlock) end function Padlock:__tostring() local frame = mw.getCurrentFrame() -- The nowiki tag helps prevent whitespace at the top of articles. return frame:extensionTag{name = 'nowiki'} .. frame:extensionTag{ name = 'indicator', args = {name = self._indicatorName}, content = self:renderImage() } end -------------------------------------------------------------------------------- -- Exports -------------------------------------------------------------------------------- local p = {} function p._exportClasses() -- This is used for testing purposes. return { Protection = Protection, Blurb = Blurb, BannerTemplate = BannerTemplate, Banner = Banner, Padlock = Padlock, } end function p._main(args, cfg, title) args = args or {} cfg = cfg or require(CONFIG_MODULE) local protectionObj = Protection.new(args, cfg, title) local ret = {} -- If a page's edit protection is equally or more restrictive than its -- protection from some other action, then don't bother displaying anything -- for the other action (except categories). if not yesno(args.catonly) and (protectionObj.action == 'edit' or args.demolevel or not getReachableNodes( cfg.hierarchy, protectionObj.level )[effectiveProtectionLevel('edit', protectionObj.title)]) then -- Initialise the blurb object local blurbObj = Blurb.new(protectionObj, args, cfg) -- Render the banner if protectionObj:shouldShowLock() then ret[#ret + 1] = tostring( (yesno(args.small) and Padlock or Banner) .new(protectionObj, blurbObj, cfg) ) end end -- Render the categories if yesno(args.category) ~= false then ret[#ret + 1] = protectionObj:makeCategoryLinks() end return table.concat(ret) end function p.main(frame, cfg) cfg = cfg or require(CONFIG_MODULE) -- Find default args, if any. local parent = frame.getParent and frame:getParent() local defaultArgs = parent and cfg.wrappers[parent:getTitle():gsub('/sandbox$', '')] -- Find user args, and use the parent frame if we are being called from a -- wrapper template. getArgs = getArgs or require('Module:Arguments').getArgs local userArgs = getArgs(frame, { parentOnly = defaultArgs, frameOnly = not defaultArgs }) -- Build the args table. User-specified args overwrite default args. local args = {} for k, v in pairs(defaultArgs or {}) do args[k] = v end for k, v in pairs(userArgs) do args[k] = v end return p._main(args, cfg) end return p b24b049f70572e29b1a408a5a11045d65118e43c Module:Protection banner/config 828 80 152 151 2022-07-21T19:50:58Z Wikiricky 1 1 revision imported Scribunto text/plain -- This module provides configuration data for [[Module:Protection banner]]. return { -------------------------------------------------------------------------------- -- -- BANNER DATA -- -------------------------------------------------------------------------------- --[[ -- Banner data consists of six fields: -- * text - the main protection text that appears at the top of protection -- banners. -- * explanation - the text that appears below the main protection text, used -- to explain the details of the protection. -- * tooltip - the tooltip text you see when you move the mouse over a small -- padlock icon. -- * link - the page that the small padlock icon links to. -- * alt - the alt text for the small padlock icon. This is also used as tooltip -- text for the large protection banners. -- * image - the padlock image used in both protection banners and small padlock -- icons. -- -- The module checks in three separate tables to find a value for each field. -- First it checks the banners table, which has values specific to the reason -- for the page being protected. Then the module checks the defaultBanners -- table, which has values specific to each protection level. Finally, the -- module checks the masterBanner table, which holds data for protection -- templates to use if no data has been found in the previous two tables. -- -- The values in the banner data can take parameters. These are specified -- using ${TEXTLIKETHIS} (a dollar sign preceding a parameter name -- enclosed in curly braces). -- -- Available parameters: -- -- ${CURRENTVERSION} - a link to the page history or the move log, with the -- display message "current-version-edit-display" or -- "current-version-move-display". -- -- ${EDITREQUEST} - a link to create an edit request for the current page. -- -- ${EXPLANATIONBLURB} - an explanation blurb, e.g. "Please discuss any changes -- on the talk page; you may submit a request to ask an administrator to make -- an edit if it is minor or supported by consensus." -- -- ${IMAGELINK} - a link to set the image to, depending on the protection -- action and protection level. -- -- ${INTROBLURB} - the PROTECTIONBLURB parameter, plus the expiry if an expiry -- is set. E.g. "Editing of this page by new or unregistered users is currently -- disabled until dd Month YYYY." -- -- ${INTROFRAGMENT} - the same as ${INTROBLURB}, but without final punctuation -- so that it can be used in run-on sentences. -- -- ${PAGETYPE} - the type of the page, e.g. "article" or "template". -- Defined in the cfg.pagetypes table. -- -- ${PROTECTIONBLURB} - a blurb explaining the protection level of the page, e.g. -- "Editing of this page by new or unregistered users is currently disabled" -- -- ${PROTECTIONDATE} - the protection date, if it has been supplied to the -- template. -- -- ${PROTECTIONLEVEL} - the protection level, e.g. "fully protected" or -- "semi-protected". -- -- ${PROTECTIONLOG} - a link to the protection log or the pending changes log, -- depending on the protection action. -- -- ${TALKPAGE} - a link to the talk page. If a section is specified, links -- straight to that talk page section. -- -- ${TOOLTIPBLURB} - uses the PAGETYPE, PROTECTIONTYPE and EXPIRY parameters to -- create a blurb like "This template is semi-protected", or "This article is -- move-protected until DD Month YYYY". -- -- ${VANDAL} - links for the specified username (or the root page name) -- using Module:Vandal-m. -- -- Functions -- -- For advanced users, it is possible to use Lua functions instead of strings -- in the banner config tables. Using functions gives flexibility that is not -- possible just by using parameters. Functions take two arguments, the -- protection object and the template arguments, and they must output a string. -- -- For example: -- -- text = function (protectionObj, args) -- if protectionObj.level == 'autoconfirmed' then -- return 'foo' -- else -- return 'bar' -- end -- end -- -- Some protection object properties and methods that may be useful: -- protectionObj.action - the protection action -- protectionObj.level - the protection level -- protectionObj.reason - the protection reason -- protectionObj.expiry - the expiry. Nil if unset, the string "indef" if set -- to indefinite, and the protection time in unix time if temporary. -- protectionObj.protectionDate - the protection date in unix time, or nil if -- unspecified. -- protectionObj.bannerConfig - the banner config found by the module. Beware -- of editing the config field used by the function, as it could create an -- infinite loop. -- protectionObj:isProtected - returns a boolean showing whether the page is -- protected. -- protectionObj:isTemporary - returns a boolean showing whether the expiry is -- temporary. -- protectionObj:isIncorrect - returns a boolean showing whether the protection -- template is incorrect. --]] -- The master banner data, used if no values have been found in banners or -- defaultBanners. masterBanner = { text = '${INTROBLURB}', explanation = '${EXPLANATIONBLURB}', tooltip = '${TOOLTIPBLURB}', link = '${IMAGELINK}', alt = 'Page ${PROTECTIONLEVEL}' }, -- The default banner data. This holds banner data for different protection -- levels. -- *required* - this table needs edit, move, autoreview and upload subtables. defaultBanners = { edit = {}, move = {}, autoreview = { default = { alt = 'Page protected with pending changes', tooltip = 'All edits by unregistered and new users are subject to review prior to becoming visible to unregistered users', image = 'Pending-protection-shackle.svg' } }, upload = {} }, -- The banner data. This holds banner data for different protection reasons. -- In fact, the reasons specified in this table control which reasons are -- valid inputs to the first positional parameter. -- -- There is also a non-standard "description" field that can be used for items -- in this table. This is a description of the protection reason for use in the -- module documentation. -- -- *required* - this table needs edit, move, autoreview and upload subtables. banners = { edit = { blp = { description = 'For pages protected to promote compliance with the' .. ' [[Wikipedia:Biographies of living persons' .. '|biographies of living persons]] policy', text = '${INTROFRAGMENT} to promote compliance with' .. ' [[Wikipedia:Biographies of living persons' .. "|Wikipedia's&nbsp;policy on&nbsp;the&nbsp;biographies" .. ' of&nbsp;living&nbsp;people]].', tooltip = '${TOOLTIPFRAGMENT} to promote compliance with the policy on' .. ' biographies of living persons', }, dmca = { description = 'For pages protected by the Wikimedia Foundation' .. ' due to [[Digital Millennium Copyright Act]] takedown requests', explanation = function (protectionObj, args) local ret = 'Pursuant to a rights owner notice under the Digital' .. ' Millennium Copyright Act (DMCA) regarding some content' .. ' in this article, the Wikimedia Foundation acted under' .. ' applicable law and took down and restricted the content' .. ' in question.' if args.notice then ret = ret .. ' A copy of the received notice can be found here: ' .. args.notice .. '.' end ret = ret .. ' For more information, including websites discussing' .. ' how to file a counter-notice, please see' .. " [[Wikipedia:Office actions]] and the article's ${TALKPAGE}." .. "'''Do not remove this template from the article until the" .. " restrictions are withdrawn'''." return ret end, image = 'Office-protection-shackle.svg', }, dispute = { description = 'For pages protected due to editing disputes', text = function (protectionObj, args) -- Find the value of "disputes". local display = 'disputes' local disputes if args.section then disputes = string.format( '[[%s:%s#%s|%s]]', mw.site.namespaces[protectionObj.title.namespace].talk.name, protectionObj.title.text, args.section, display ) else disputes = display end -- Make the blurb, depending on the expiry. local msg if type(protectionObj.expiry) == 'number' then msg = '${INTROFRAGMENT} or until editing %s have been resolved.' else msg = '${INTROFRAGMENT} until editing %s have been resolved.' end return string.format(msg, disputes) end, explanation = "This protection is '''not''' an endorsement of the" .. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}', tooltip = '${TOOLTIPFRAGMENT} due to editing disputes', }, ecp = { description = 'For articles in topic areas authorized by' .. ' [[Wikipedia:Arbitration Committee|ArbCom]] or' .. ' meets the criteria for community use', tooltip = 'This ${PAGETYPE} is extended-confirmed protected', alt = 'Extended-protected ${PAGETYPE}', }, mainpage = { description = 'For pages protected for being displayed on the [[Main Page]]', text = 'This file is currently' .. ' [[Wikipedia:This page is protected|protected]] from' .. ' editing because it is currently or will soon be displayed' .. ' on the [[Main Page]].', explanation = 'Images on the Main Page are protected due to their high' .. ' visibility. Please discuss any necessary changes on the ${TALKPAGE}.' .. '<br /><span style="font-size:90%;">' .. "'''Administrators:''' Once this image is definitely off the Main Page," .. ' please unprotect this file, or reduce to semi-protection,' .. ' as appropriate.</span>', }, office = { description = 'For pages protected by the Wikimedia Foundation', text = function (protectionObj, args) local ret = 'This ${PAGETYPE} is currently under the' .. ' scrutiny of the' .. ' [[Wikipedia:Office actions|Wikimedia Foundation Office]]' .. ' and is protected.' if protectionObj.protectionDate then ret = ret .. ' It has been protected since ${PROTECTIONDATE}.' end return ret end, explanation = "If you can edit this page, please discuss all changes and" .. " additions on the ${TALKPAGE} first. '''Do not remove protection from this" .. " page unless you are authorized by the Wikimedia Foundation to do" .. " so.'''", image = 'Office-protection-shackle.svg', }, reset = { description = 'For pages protected by the Wikimedia Foundation and' .. ' "reset" to a bare-bones version', text = 'This ${PAGETYPE} is currently under the' .. ' scrutiny of the' .. ' [[Wikipedia:Office actions|Wikimedia Foundation Office]]' .. ' and is protected.', explanation = function (protectionObj, args) local ret = '' if protectionObj.protectionDate then ret = ret .. 'On ${PROTECTIONDATE} this ${PAGETYPE} was' else ret = ret .. 'This ${PAGETYPE} has been' end ret = ret .. ' reduced to a' .. ' simplified, "bare bones" version so that it may be completely' .. ' rewritten to ensure it meets the policies of' .. ' [[WP:NPOV|Neutral Point of View]] and [[WP:V|Verifiability]].' .. ' Standard Wikipedia policies will apply to its rewriting—which' .. ' will eventually be open to all editors—and will be strictly' .. ' enforced. The ${PAGETYPE} has been ${PROTECTIONLEVEL} while' .. ' it is being rebuilt.\n\n' .. 'Any insertion of material directly from' .. ' pre-protection revisions of the ${PAGETYPE} will be removed, as' .. ' will any material added to the ${PAGETYPE} that is not properly' .. ' sourced. The associated talk page(s) were also cleared on the' .. " same date.\n\n" .. "If you can edit this page, please discuss all changes and" .. " additions on the ${TALKPAGE} first. '''Do not override" .. " this action, and do not remove protection from this page," .. " unless you are authorized by the Wikimedia Foundation" .. " to do so. No editor may remove this notice.'''" return ret end, image = 'Office-protection-shackle.svg', }, sock = { description = 'For pages protected due to' .. ' [[Wikipedia:Sock puppetry|sock puppetry]]', text = '${INTROFRAGMENT} to prevent [[Wikipedia:Sock puppetry|sock puppets]] of' .. ' [[Wikipedia:Blocking policy|blocked]] or' .. ' [[Wikipedia:Banning policy|banned users]]' .. ' from editing it.', tooltip = '${TOOLTIPFRAGMENT} to prevent sock puppets of blocked or banned users from' .. ' editing it', }, template = { description = 'For [[Wikipedia:High-risk templates|high-risk]]' .. ' templates and Lua modules', text = 'This is a permanently [[Help:Protection|protected]] ${PAGETYPE},' .. ' as it is [[Wikipedia:High-risk templates|high-risk]].', explanation = 'Please discuss any changes on the ${TALKPAGE}; you may' .. ' ${EDITREQUEST} to ask an' .. ' [[Wikipedia:Administrators|administrator]] or' .. ' [[Wikipedia:Template editor|template editor]] to make an edit if' .. ' it is [[Help:Minor edit#When to mark an edit as a minor edit' .. '|uncontroversial]] or supported by' .. ' [[Wikipedia:Consensus|consensus]]. You can also' .. ' [[Wikipedia:Requests for page protection|request]] that the page be' .. ' unprotected.', tooltip = 'This high-risk ${PAGETYPE} is permanently ${PROTECTIONLEVEL}' .. ' to prevent vandalism', alt = 'Permanently protected ${PAGETYPE}', }, usertalk = { description = 'For pages protected against disruptive edits by a' .. ' particular user', text = '${INTROFRAGMENT} to prevent ${VANDAL} from using it to make disruptive edits,' .. ' such as abusing the' .. ' &#123;&#123;[[Template:unblock|unblock]]&#125;&#125; template.', explanation = 'If you cannot edit this user talk page and you need to' .. ' make a change or leave a message, you can' .. ' [[Wikipedia:Requests for page protection' .. '#Current requests for edits to a protected page' .. '|request an edit]],' .. ' [[Wikipedia:Requests for page protection' .. '#Current requests for reduction in protection level' .. '|request unprotection]],' .. ' [[Special:Userlogin|log in]],' .. ' or [[Special:UserLogin/signup|create an account]].', }, vandalism = { description = 'For pages protected against' .. ' [[Wikipedia:Vandalism|vandalism]]', text = '${INTROFRAGMENT} due to [[Wikipedia:Vandalism|vandalism]].', explanation = function (protectionObj, args) local ret = '' if protectionObj.level == 'sysop' then ret = ret .. "This protection is '''not''' an endorsement of the" .. ' ${CURRENTVERSION}. ' end return ret .. '${EXPLANATIONBLURB}' end, tooltip = '${TOOLTIPFRAGMENT} due to vandalism', } }, move = { dispute = { description = 'For pages protected against page moves due to' .. ' disputes over the page title', explanation = "This protection is '''not''' an endorsement of the" .. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}', image = 'Move-protection-shackle.svg' }, vandalism = { description = 'For pages protected against' .. ' [[Wikipedia:Vandalism#Page-move vandalism' .. ' |page-move vandalism]]' } }, autoreview = {}, upload = {} }, -------------------------------------------------------------------------------- -- -- GENERAL DATA TABLES -- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -- Protection blurbs -------------------------------------------------------------------------------- -- This table produces the protection blurbs available with the -- ${PROTECTIONBLURB} parameter. It is sorted by protection action and -- protection level, and is checked by the module in the following order: -- 1. page's protection action, page's protection level -- 2. page's protection action, default protection level -- 3. "edit" protection action, default protection level -- -- It is possible to use banner parameters inside this table. -- *required* - this table needs edit, move, autoreview and upload subtables. protectionBlurbs = { edit = { default = 'This ${PAGETYPE} is currently [[Help:Protection|' .. 'protected]] from editing', autoconfirmed = 'Editing of this ${PAGETYPE} by [[Wikipedia:User access' .. ' levels#New users|new]] or [[Wikipedia:User access levels#Unregistered' .. ' users|unregistered]] users is currently [[Help:Protection|disabled]]', extendedconfirmed = 'This ${PAGETYPE} is currently under extended confirmed protection', }, move = { default = 'This ${PAGETYPE} is currently [[Help:Protection|protected]]' .. ' from [[Help:Moving a page|page moves]]' }, autoreview = { default = 'All edits made to this ${PAGETYPE} by' .. ' [[Wikipedia:User access levels#New users|new]] or' .. ' [[Wikipedia:User access levels#Unregistered users|unregistered]]' .. ' users are currently' .. ' [[Wikipedia:Pending changes|subject to review]]' }, upload = { default = 'Uploading new versions of this ${PAGETYPE} is currently disabled' } }, -------------------------------------------------------------------------------- -- Explanation blurbs -------------------------------------------------------------------------------- -- This table produces the explanation blurbs available with the -- ${EXPLANATIONBLURB} parameter. It is sorted by protection action, -- protection level, and whether the page is a talk page or not. If the page is -- a talk page it will have a talk key of "talk"; otherwise it will have a talk -- key of "subject". The table is checked in the following order: -- 1. page's protection action, page's protection level, page's talk key -- 2. page's protection action, page's protection level, default talk key -- 3. page's protection action, default protection level, page's talk key -- 4. page's protection action, default protection level, default talk key -- -- It is possible to use banner parameters inside this table. -- *required* - this table needs edit, move, autoreview and upload subtables. explanationBlurbs = { edit = { autoconfirmed = { subject = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details. If you' .. ' cannot edit this ${PAGETYPE} and you wish to make a change, you can' .. ' ${EDITREQUEST}, discuss changes on the ${TALKPAGE},' .. ' [[Wikipedia:Requests for page protection' .. '#Current requests for reduction in protection level' .. '|request unprotection]], [[Special:Userlogin|log in]], or' .. ' [[Special:UserLogin/signup|create an account]].', default = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details. If you' .. ' cannot edit this ${PAGETYPE} and you wish to make a change, you can' .. ' [[Wikipedia:Requests for page protection' .. '#Current requests for reduction in protection level' .. '|request unprotection]], [[Special:Userlogin|log in]], or' .. ' [[Special:UserLogin/signup|create an account]].', }, extendedconfirmed = { default = 'Extended confirmed protection prevents edits from all unregistered editors' .. ' and registered users with fewer than 30 days tenure and 500 edits.' .. ' The [[Wikipedia:Protection policy#extended|policy on community use]]' .. ' specifies that extended confirmed protection can be applied to combat' .. ' disruption, if semi-protection has proven to be ineffective.' .. ' Extended confirmed protection may also be applied to enforce' .. ' [[Wikipedia:Arbitration Committee|arbitration sanctions]].' .. ' Please discuss any changes on the ${TALKPAGE}; you may' .. ' ${EDITREQUEST} to ask for uncontroversial changes supported by' .. ' [[Wikipedia:Consensus|consensus]].' }, default = { subject = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' Please discuss any changes on the ${TALKPAGE}; you' .. ' may ${EDITREQUEST} to ask an' .. ' [[Wikipedia:Administrators|administrator]] to make an edit if it' .. ' is [[Help:Minor edit#When to mark an edit as a minor edit' .. '|uncontroversial]] or supported by [[Wikipedia:Consensus' .. '|consensus]]. You may also [[Wikipedia:Requests for' .. ' page protection#Current requests for reduction in protection level' .. '|request]] that this page be unprotected.', default = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' You may [[Wikipedia:Requests for page' .. ' protection#Current requests for edits to a protected page|request an' .. ' edit]] to this page, or [[Wikipedia:Requests for' .. ' page protection#Current requests for reduction in protection level' .. '|ask]] for it to be unprotected.' } }, move = { default = { subject = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' The page may still be edited but cannot be moved' .. ' until unprotected. Please discuss any suggested moves on the' .. ' ${TALKPAGE} or at [[Wikipedia:Requested moves]]. You can also' .. ' [[Wikipedia:Requests for page protection|request]] that the page be' .. ' unprotected.', default = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' The page may still be edited but cannot be moved' .. ' until unprotected. Please discuss any suggested moves at' .. ' [[Wikipedia:Requested moves]]. You can also' .. ' [[Wikipedia:Requests for page protection|request]] that the page be' .. ' unprotected.' } }, autoreview = { default = { default = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' Edits to this ${PAGETYPE} by new and unregistered users' .. ' will not be visible to readers until they are accepted by' .. ' a reviewer. To avoid the need for your edits to be' .. ' reviewed, you may' .. ' [[Wikipedia:Requests for page protection' .. '#Current requests for reduction in protection level' .. '|request unprotection]], [[Special:Userlogin|log in]], or' .. ' [[Special:UserLogin/signup|create an account]].' }, }, upload = { default = { default = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' The page may still be edited but new versions of the file' .. ' cannot be uploaded until it is unprotected. You can' .. ' request that a new version be uploaded by using a' .. ' [[Wikipedia:Edit requests|protected edit request]], or you' .. ' can [[Wikipedia:Requests for page protection|request]]' .. ' that the file be unprotected.' } } }, -------------------------------------------------------------------------------- -- Protection levels -------------------------------------------------------------------------------- -- This table provides the data for the ${PROTECTIONLEVEL} parameter, which -- produces a short label for different protection levels. It is sorted by -- protection action and protection level, and is checked in the following -- order: -- 1. page's protection action, page's protection level -- 2. page's protection action, default protection level -- 3. "edit" protection action, default protection level -- -- It is possible to use banner parameters inside this table. -- *required* - this table needs edit, move, autoreview and upload subtables. protectionLevels = { edit = { default = 'protected', templateeditor = 'template-protected', extendedconfirmed = 'extended-protected', autoconfirmed = 'semi-protected', }, move = { default = 'move-protected' }, autoreview = { }, upload = { default = 'upload-protected' } }, -------------------------------------------------------------------------------- -- Images -------------------------------------------------------------------------------- -- This table lists different padlock images for each protection action and -- protection level. It is used if an image is not specified in any of the -- banner data tables, and if the page does not satisfy the conditions for using -- the ['image-filename-indef'] image. It is checked in the following order: -- 1. page's protection action, page's protection level -- 2. page's protection action, default protection level images = { edit = { default = 'Full-protection-shackle.svg', templateeditor = 'Template-protection-shackle.svg', extendedconfirmed = 'Extended-protection-shackle.svg', autoconfirmed = 'Semi-protection-shackle.svg' }, move = { default = 'Move-protection-shackle.svg', }, autoreview = { default = 'Pending-protection-shackle.svg' }, upload = { default = 'Upload-protection-shackle.svg' } }, -- Pages with a reason specified in this table will show the special "indef" -- padlock, defined in the 'image-filename-indef' message, if no expiry is set. indefImageReasons = { template = true }, -------------------------------------------------------------------------------- -- Image links -------------------------------------------------------------------------------- -- This table provides the data for the ${IMAGELINK} parameter, which gets -- the image link for small padlock icons based on the page's protection action -- and protection level. It is checked in the following order: -- 1. page's protection action, page's protection level -- 2. page's protection action, default protection level -- 3. "edit" protection action, default protection level -- -- It is possible to use banner parameters inside this table. -- *required* - this table needs edit, move, autoreview and upload subtables. imageLinks = { edit = { default = 'Wikipedia:Protection policy#full', templateeditor = 'Wikipedia:Protection policy#template', extendedconfirmed = 'Wikipedia:Protection policy#extended', autoconfirmed = 'Wikipedia:Protection policy#semi' }, move = { default = 'Wikipedia:Protection policy#move' }, autoreview = { default = 'Wikipedia:Protection policy#pending' }, upload = { default = 'Wikipedia:Protection policy#upload' } }, -------------------------------------------------------------------------------- -- Padlock indicator names -------------------------------------------------------------------------------- -- This table provides the "name" attribute for the <indicator> extension tag -- with which small padlock icons are generated. All indicator tags on a page -- are displayed in alphabetical order based on this attribute, and with -- indicator tags with duplicate names, the last tag on the page wins. -- The attribute is chosen based on the protection action; table keys must be a -- protection action name or the string "default". padlockIndicatorNames = { autoreview = 'pp-autoreview', default = 'pp-default' }, -------------------------------------------------------------------------------- -- Protection categories -------------------------------------------------------------------------------- --[[ -- The protection categories are stored in the protectionCategories table. -- Keys to this table are made up of the following strings: -- -- 1. the expiry date -- 2. the namespace -- 3. the protection reason (e.g. "dispute" or "vandalism") -- 4. the protection level (e.g. "sysop" or "autoconfirmed") -- 5. the action (e.g. "edit" or "move") -- -- When the module looks up a category in the table, first it will will check to -- see a key exists that corresponds to all five parameters. For example, a -- user page semi-protected from vandalism for two weeks would have the key -- "temp-user-vandalism-autoconfirmed-edit". If no match is found, the module -- changes the first part of the key to "all" and checks the table again. It -- keeps checking increasingly generic key combinations until it finds the -- field, or until it reaches the key "all-all-all-all-all". -- -- The module uses a binary matrix to determine the order in which to search. -- This is best demonstrated by a table. In this table, the "0" values -- represent "all", and the "1" values represent the original data (e.g. -- "indef" or "file" or "vandalism"). -- -- expiry namespace reason level action -- order -- 1 1 1 1 1 1 -- 2 0 1 1 1 1 -- 3 1 0 1 1 1 -- 4 0 0 1 1 1 -- 5 1 1 0 1 1 -- 6 0 1 0 1 1 -- 7 1 0 0 1 1 -- 8 0 0 0 1 1 -- 9 1 1 1 0 1 -- 10 0 1 1 0 1 -- 11 1 0 1 0 1 -- 12 0 0 1 0 1 -- 13 1 1 0 0 1 -- 14 0 1 0 0 1 -- 15 1 0 0 0 1 -- 16 0 0 0 0 1 -- 17 1 1 1 1 0 -- 18 0 1 1 1 0 -- 19 1 0 1 1 0 -- 20 0 0 1 1 0 -- 21 1 1 0 1 0 -- 22 0 1 0 1 0 -- 23 1 0 0 1 0 -- 24 0 0 0 1 0 -- 25 1 1 1 0 0 -- 26 0 1 1 0 0 -- 27 1 0 1 0 0 -- 28 0 0 1 0 0 -- 29 1 1 0 0 0 -- 30 0 1 0 0 0 -- 31 1 0 0 0 0 -- 32 0 0 0 0 0 -- -- In this scheme the action has the highest priority, as it is the last -- to change, and the expiry has the least priority, as it changes the most. -- The priorities of the expiry, the protection level and the action are -- fixed, but the priorities of the reason and the namespace can be swapped -- through the use of the cfg.bannerDataNamespaceHasPriority table. --]] -- If the reason specified to the template is listed in this table, -- namespace data will take priority over reason data in the protectionCategories -- table. reasonsWithNamespacePriority = { vandalism = true, }, -- The string to use as a namespace key for the protectionCategories table for each -- namespace number. categoryNamespaceKeys = { [ 2] = 'user', [ 3] = 'user', [ 4] = 'project', [ 6] = 'file', [ 8] = 'mediawiki', [ 10] = 'template', [ 12] = 'project', [ 14] = 'category', [100] = 'portal', [828] = 'module', }, protectionCategories = { ['all|all|all|all|all'] = 'Wikipedia fully protected pages', ['all|all|office|all|all'] = 'Wikipedia Office-protected pages', ['all|all|reset|all|all'] = 'Wikipedia Office-protected pages', ['all|all|dmca|all|all'] = 'Wikipedia Office-protected pages', ['all|all|mainpage|all|all'] = 'Wikipedia fully-protected main page files', ['all|all|all|extendedconfirmed|all'] = 'Wikipedia extended-confirmed-protected pages', ['all|all|ecp|extendedconfirmed|all'] = 'Wikipedia extended-confirmed-protected pages', ['all|template|all|all|edit'] = 'Wikipedia fully protected templates', ['all|all|all|autoconfirmed|edit'] = 'Wikipedia semi-protected pages', ['indef|all|all|autoconfirmed|edit'] = 'Wikipedia indefinitely semi-protected pages', ['all|all|blp|autoconfirmed|edit'] = 'Wikipedia indefinitely semi-protected biographies of living people', ['temp|all|blp|autoconfirmed|edit'] = 'Wikipedia temporarily semi-protected biographies of living people', ['all|all|dispute|autoconfirmed|edit'] = 'Wikipedia pages semi-protected due to dispute', ['all|all|sock|autoconfirmed|edit'] = 'Wikipedia pages semi-protected from banned users', ['all|all|vandalism|autoconfirmed|edit'] = 'Wikipedia pages semi-protected against vandalism', ['all|category|all|autoconfirmed|edit'] = 'Wikipedia semi-protected categories', ['all|file|all|autoconfirmed|edit'] = 'Wikipedia semi-protected files', ['all|portal|all|autoconfirmed|edit'] = 'Wikipedia semi-protected portals', ['all|project|all|autoconfirmed|edit'] = 'Wikipedia semi-protected project pages', ['all|talk|all|autoconfirmed|edit'] = 'Wikipedia semi-protected talk pages', ['all|template|all|autoconfirmed|edit'] = 'Wikipedia semi-protected templates', ['all|user|all|autoconfirmed|edit'] = 'Wikipedia semi-protected user and user talk pages', ['all|all|all|templateeditor|edit'] = 'Wikipedia template-protected pages other than templates and modules', ['all|template|all|templateeditor|edit'] = 'Wikipedia template-protected templates', ['all|template|all|templateeditor|move'] = 'Wikipedia template-protected templates', -- move-protected templates ['all|all|blp|sysop|edit'] = 'Wikipedia indefinitely protected biographies of living people', ['temp|all|blp|sysop|edit'] = 'Wikipedia temporarily protected biographies of living people', ['all|all|dispute|sysop|edit'] = 'Wikipedia pages protected due to dispute', ['all|all|sock|sysop|edit'] = 'Wikipedia pages protected from banned users', ['all|all|vandalism|sysop|edit'] = 'Wikipedia pages protected against vandalism', ['all|category|all|sysop|edit'] = 'Wikipedia fully protected categories', ['all|file|all|sysop|edit'] = 'Wikipedia fully-protected files', ['all|project|all|sysop|edit'] = 'Wikipedia fully-protected project pages', ['all|talk|all|sysop|edit'] = 'Wikipedia fully-protected talk pages', ['all|template|all|extendedconfirmed|edit'] = 'Wikipedia extended-confirmed-protected templates', ['all|template|all|sysop|edit'] = 'Wikipedia fully protected templates', ['all|user|all|sysop|edit'] = 'Wikipedia fully protected user and user talk pages', ['all|module|all|all|edit'] = 'Wikipedia fully-protected modules', ['all|module|all|templateeditor|edit'] = 'Wikipedia template-protected modules', ['all|module|all|extendedconfirmed|edit'] = 'Wikipedia extended-confirmed-protected modules', ['all|module|all|autoconfirmed|edit'] = 'Wikipedia semi-protected modules', ['all|all|all|sysop|move'] = 'Wikipedia move-protected pages', ['indef|all|all|sysop|move'] = 'Wikipedia indefinitely move-protected pages', ['all|all|dispute|sysop|move'] = 'Wikipedia pages move-protected due to dispute', ['all|all|vandalism|sysop|move'] = 'Wikipedia pages move-protected due to vandalism', ['all|portal|all|sysop|move'] = 'Wikipedia move-protected portals', ['all|project|all|sysop|move'] = 'Wikipedia move-protected project pages', ['all|talk|all|sysop|move'] = 'Wikipedia move-protected talk pages', ['all|template|all|sysop|move'] = 'Wikipedia move-protected templates', ['all|user|all|sysop|move'] = 'Wikipedia move-protected user and user talk pages', ['all|all|all|autoconfirmed|autoreview'] = 'Wikipedia pending changes protected pages', ['all|file|all|all|upload'] = 'Wikipedia upload-protected files', }, -------------------------------------------------------------------------------- -- Expiry category config -------------------------------------------------------------------------------- -- This table configures the expiry category behaviour for each protection -- action. -- * If set to true, setting that action will always categorise the page if -- an expiry parameter is not set. -- * If set to false, setting that action will never categorise the page. -- * If set to nil, the module will categorise the page if: -- 1) an expiry parameter is not set, and -- 2) a reason is provided, and -- 3) the specified reason is not blacklisted in the reasonsWithoutExpiryCheck -- table. expiryCheckActions = { edit = nil, move = false, autoreview = true, upload = false }, reasonsWithoutExpiryCheck = { blp = true, template = true, }, -------------------------------------------------------------------------------- -- Pagetypes -------------------------------------------------------------------------------- -- This table produces the page types available with the ${PAGETYPE} parameter. -- Keys are namespace numbers, or the string "default" for the default value. pagetypes = { [0] = 'article', [6] = 'file', [10] = 'template', [14] = 'category', [828] = 'module', default = 'page' }, -------------------------------------------------------------------------------- -- Strings marking indefinite protection -------------------------------------------------------------------------------- -- This table contains values passed to the expiry parameter that mean the page -- is protected indefinitely. indefStrings = { ['indef'] = true, ['indefinite'] = true, ['indefinitely'] = true, ['infinite'] = true, }, -------------------------------------------------------------------------------- -- Group hierarchy -------------------------------------------------------------------------------- -- This table maps each group to all groups that have a superset of the original -- group's page editing permissions. hierarchy = { sysop = {}, reviewer = {'sysop'}, filemover = {'sysop'}, templateeditor = {'sysop'}, extendedconfirmed = {'sysop'}, autoconfirmed = {'reviewer', 'filemover', 'templateeditor', 'extendedconfirmed'}, user = {'autoconfirmed'}, ['*'] = {'user'} }, -------------------------------------------------------------------------------- -- Wrapper templates and their default arguments -------------------------------------------------------------------------------- -- This table contains wrapper templates used with the module, and their -- default arguments. Templates specified in this table should contain the -- following invocation, and no other template content: -- -- {{#invoke:Protection banner|main}} -- -- If other content is desired, it can be added between -- <noinclude>...</noinclude> tags. -- -- When a user calls one of these wrapper templates, they will use the -- default arguments automatically. However, users can override any of the -- arguments. wrappers = { ['Template:Pp'] = {}, ['Template:Pp-extended'] = {'ecp'}, ['Template:Pp-blp'] = {'blp'}, -- we don't need Template:Pp-create ['Template:Pp-dispute'] = {'dispute'}, ['Template:Pp-main-page'] = {'mainpage'}, ['Template:Pp-move'] = {action = 'move', catonly = 'yes'}, ['Template:Pp-move-dispute'] = {'dispute', action = 'move', catonly = 'yes'}, -- we don't need Template:Pp-move-indef ['Template:Pp-move-vandalism'] = {'vandalism', action = 'move', catonly = 'yes'}, ['Template:Pp-office'] = {'office'}, ['Template:Pp-office-dmca'] = {'dmca'}, ['Template:Pp-pc'] = {action = 'autoreview', small = true}, ['Template:Pp-pc1'] = {action = 'autoreview', small = true}, ['Template:Pp-reset'] = {'reset'}, ['Template:Pp-semi-indef'] = {small = true}, ['Template:Pp-sock'] = {'sock'}, ['Template:Pp-template'] = {'template', small = true}, ['Template:Pp-upload'] = {action = 'upload'}, ['Template:Pp-usertalk'] = {'usertalk'}, ['Template:Pp-vandalism'] = {'vandalism'}, }, -------------------------------------------------------------------------------- -- -- MESSAGES -- -------------------------------------------------------------------------------- msg = { -------------------------------------------------------------------------------- -- Intro blurb and intro fragment -------------------------------------------------------------------------------- -- These messages specify what is produced by the ${INTROBLURB} and -- ${INTROFRAGMENT} parameters. If the protection is temporary they use the -- intro-blurb-expiry or intro-fragment-expiry, and if not they use -- intro-blurb-noexpiry or intro-fragment-noexpiry. -- It is possible to use banner parameters in these messages. ['intro-blurb-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY}.', ['intro-blurb-noexpiry'] = '${PROTECTIONBLURB}.', ['intro-fragment-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY},', ['intro-fragment-noexpiry'] = '${PROTECTIONBLURB}', -------------------------------------------------------------------------------- -- Tooltip blurb -------------------------------------------------------------------------------- -- These messages specify what is produced by the ${TOOLTIPBLURB} parameter. -- If the protection is temporary the tooltip-blurb-expiry message is used, and -- if not the tooltip-blurb-noexpiry message is used. -- It is possible to use banner parameters in these messages. ['tooltip-blurb-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY}.', ['tooltip-blurb-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}.', ['tooltip-fragment-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY},', ['tooltip-fragment-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}', -------------------------------------------------------------------------------- -- Special explanation blurb -------------------------------------------------------------------------------- -- An explanation blurb for pages that cannot be unprotected, e.g. for pages -- in the MediaWiki namespace. -- It is possible to use banner parameters in this message. ['explanation-blurb-nounprotect'] = 'See the [[Wikipedia:Protection policy|' .. 'protection policy]] and ${PROTECTIONLOG} for more details.' .. ' Please discuss any changes on the ${TALKPAGE}; you' .. ' may ${EDITREQUEST} to ask an' .. ' [[Wikipedia:Administrators|administrator]] to make an edit if it' .. ' is [[Help:Minor edit#When to mark an edit as a minor edit' .. '|uncontroversial]] or supported by [[Wikipedia:Consensus' .. '|consensus]].', -------------------------------------------------------------------------------- -- Protection log display values -------------------------------------------------------------------------------- -- These messages determine the display values for the protection log link -- or the pending changes log link produced by the ${PROTECTIONLOG} parameter. -- It is possible to use banner parameters in these messages. ['protection-log-display'] = 'protection log', ['pc-log-display'] = 'pending changes log', -------------------------------------------------------------------------------- -- Current version display values -------------------------------------------------------------------------------- -- These messages determine the display values for the page history link -- or the move log link produced by the ${CURRENTVERSION} parameter. -- It is possible to use banner parameters in these messages. ['current-version-move-display'] = 'current title', ['current-version-edit-display'] = 'current version', -------------------------------------------------------------------------------- -- Talk page -------------------------------------------------------------------------------- -- This message determines the display value of the talk page link produced -- with the ${TALKPAGE} parameter. -- It is possible to use banner parameters in this message. ['talk-page-link-display'] = 'talk page', -------------------------------------------------------------------------------- -- Edit requests -------------------------------------------------------------------------------- -- This message determines the display value of the edit request link produced -- with the ${EDITREQUEST} parameter. -- It is possible to use banner parameters in this message. ['edit-request-display'] = 'submit an edit request', -------------------------------------------------------------------------------- -- Expiry date format -------------------------------------------------------------------------------- -- This is the format for the blurb expiry date. It should be valid input for -- the first parameter of the #time parser function. ['expiry-date-format'] = 'F j, Y "at" H:i e', -------------------------------------------------------------------------------- -- Tracking categories -------------------------------------------------------------------------------- -- These messages determine which tracking categories the module outputs. ['tracking-category-incorrect'] = 'Wikipedia pages with incorrect protection templates', ['tracking-category-template'] = 'Wikipedia template-protected pages other than templates and modules', -------------------------------------------------------------------------------- -- Images -------------------------------------------------------------------------------- -- These are images that are not defined by their protection action and protection level. ['image-filename-indef'] = 'Full-protection-shackle.svg', ['image-filename-default'] = 'Transparent.gif', -------------------------------------------------------------------------------- -- End messages -------------------------------------------------------------------------------- } -------------------------------------------------------------------------------- -- End configuration -------------------------------------------------------------------------------- } 7b4133071e798dbabff5c4e8628e5537a1d376e3 Module:Section link 828 81 154 153 2022-07-21T19:50:58Z Wikiricky 1 1 revision imported Scribunto text/plain -- This module implements {{section link}}. require('Module:No globals'); local checkType = require('libraryUtil').checkType local p = {} local function makeSectionLink(page, section, display) display = display or section page = page or '' -- MediaWiki doesn't allow these in `page`, so only need to do for `section` if type(section) == 'string' then section = string.gsub(section, "{", "&#x7B;") section = string.gsub(section, "}", "&#x7D;") end return string.format('[[%s#%s|%s]]', page, section, display) end local function normalizeTitle(title) title = mw.ustring.gsub(mw.ustring.gsub(title, "'", ""), '"', '') title = mw.ustring.gsub(title, "%b<>", "") return mw.title.new(title).prefixedText end function p._main(page, sections, options, title) -- Validate input. checkType('_main', 1, page, 'string', true) checkType('_main', 3, options, 'table', true) if sections == nil then sections = {} elseif type(sections) == 'string' then sections = {sections} elseif type(sections) ~= 'table' then error(string.format( "type error in argument #2 to '_main' " .. "(string, table or nil expected, got %s)", type(sections) ), 2) end options = options or {} title = title or mw.title.getCurrentTitle() -- Deal with blank page names elegantly if page and not page:find('%S') then page = nil options.nopage = true end -- Make the link(s). local isShowingPage = not options.nopage if #sections <= 1 then local linkPage = page or '' local section = sections[1] or 'Notes' local display = '§&nbsp;' .. section if isShowingPage then page = page or title.prefixedText if options.display and options.display ~= '' then if normalizeTitle(options.display) == normalizeTitle(page) then display = options.display .. ' ' .. display else error(string.format( 'Display title "%s" was ignored since it is ' .. "not equivalent to the page's actual title", options.display ), 0) end else display = page .. ' ' .. display end end return makeSectionLink(linkPage, section, display) else -- Multiple sections. First, make a list of the links to display. local ret = {} for i, section in ipairs(sections) do ret[i] = makeSectionLink(page, section) end -- Assemble the list of links into a string with mw.text.listToText. -- We use the default separator for mw.text.listToText, but a custom -- conjunction. There is also a special case conjunction if we only -- have two links. local conjunction if #sections == 2 then conjunction = '&#8203; and ' else conjunction = ', and ' end ret = mw.text.listToText(ret, nil, conjunction) -- Add the intro text. local intro = '§§&nbsp;' if isShowingPage then intro = (page or title.prefixedText) .. ' ' .. intro end ret = intro .. ret return ret end end function p.main(frame) local yesno = require('Module:Yesno') local args = require('Module:Arguments').getArgs(frame, { wrappers = 'Template:Section link', valueFunc = function (key, value) value = value:match('^%s*(.-)%s*$') -- Trim whitespace -- Allow blank first parameters, as the wikitext template does this. if value ~= '' or key == 1 then return value end end }) for k, v in pairs(args) do -- replace underscores in the positional parameter values if 'number' == type(k) then if not yesno (args['keep-underscores']) then -- unless |keep-underscores=yes args[k] = mw.uri.decode (v, 'WIKI'); -- percent-decode; replace underscores with space characters else args[k] = mw.uri.decode (v, 'PATH'); -- percent-decode; retain underscores end end end -- Sort the arguments. local page local sections, options = {}, {} for k, v in pairs(args) do if k == 1 then -- Doing this in the loop because of a bug in [[Module:Arguments]] -- when using pairs with deleted arguments. page = mw.text.decode(v, true) elseif type(k) == 'number' then sections[k] = v else options[k] = v end end options.nopage = yesno (options.nopage); -- make boolean -- Extract section from page, if present if page then local p, s = page:match('^(.-)#(.*)$') if p then page, sections[1] = p, s end end -- Compress the sections array. local function compressArray(t) local nums, ret = {}, {} for num in pairs(t) do nums[#nums + 1] = num end table.sort(nums) for i, num in ipairs(nums) do ret[i] = t[num] end return ret end sections = compressArray(sections) return p._main(page, sections, options) end return p 712a4e62cbae4ef21220d701037b207aec105d45 Module:String 828 82 156 155 2022-07-21T19:50:59Z Wikiricky 1 1 revision imported Scribunto text/plain --[[ This module is intended to provide access to basic string functions. Most of the functions provided here can be invoked with named parameters, unnamed parameters, or a mixture. If named parameters are used, Mediawiki will automatically remove any leading or trailing whitespace from the parameter. Depending on the intended use, it may be advantageous to either preserve or remove such whitespace. Global options ignore_errors: If set to 'true' or 1, any error condition will result in an empty string being returned rather than an error message. error_category: If an error occurs, specifies the name of a category to include with the error message. The default category is [Category:Errors reported by Module String]. no_category: If set to 'true' or 1, no category will be added if an error is generated. Unit tests for this module are available at Module:String/tests. ]] local str = {} --[[ len This function returns the length of the target string. Usage: {{#invoke:String|len|target_string|}} OR {{#invoke:String|len|s=target_string}} Parameters s: The string whose length to report If invoked using named parameters, Mediawiki will automatically remove any leading or trailing whitespace from the target string. ]] function str.len( frame ) local new_args = str._getParameters( frame.args, {'s'} ) local s = new_args['s'] or '' return mw.ustring.len( s ) end --[[ sub This function returns a substring of the target string at specified indices. Usage: {{#invoke:String|sub|target_string|start_index|end_index}} OR {{#invoke:String|sub|s=target_string|i=start_index|j=end_index}} Parameters s: The string to return a subset of i: The fist index of the substring to return, defaults to 1. j: The last index of the string to return, defaults to the last character. The first character of the string is assigned an index of 1. If either i or j is a negative value, it is interpreted the same as selecting a character by counting from the end of the string. Hence, a value of -1 is the same as selecting the last character of the string. If the requested indices are out of range for the given string, an error is reported. ]] function str.sub( frame ) local new_args = str._getParameters( frame.args, { 's', 'i', 'j' } ) local s = new_args['s'] or '' local i = tonumber( new_args['i'] ) or 1 local j = tonumber( new_args['j'] ) or -1 local len = mw.ustring.len( s ) -- Convert negatives for range checking if i < 0 then i = len + i + 1 end if j < 0 then j = len + j + 1 end if i > len or j > len or i < 1 or j < 1 then return str._error( 'String subset index out of range' ) end if j < i then return str._error( 'String subset indices out of order' ) end return mw.ustring.sub( s, i, j ) end --[[ This function implements that features of {{str sub old}} and is kept in order to maintain these older templates. ]] function str.sublength( frame ) local i = tonumber( frame.args.i ) or 0 local len = tonumber( frame.args.len ) return mw.ustring.sub( frame.args.s, i + 1, len and ( i + len ) ) end --[[ _match This function returns a substring from the source string that matches a specified pattern. It is exported for use in other modules Usage: strmatch = require("Module:String")._match sresult = strmatch( s, pattern, start, match, plain, nomatch ) Parameters s: The string to search pattern: The pattern or string to find within the string start: The index within the source string to start the search. The first character of the string has index 1. Defaults to 1. match: In some cases it may be possible to make multiple matches on a single string. This specifies which match to return, where the first match is match= 1. If a negative number is specified then a match is returned counting from the last match. Hence match = -1 is the same as requesting the last match. Defaults to 1. plain: A flag indicating that the pattern should be understood as plain text. Defaults to false. nomatch: If no match is found, output the "nomatch" value rather than an error. For information on constructing Lua patterns, a form of [regular expression], see: * http://www.lua.org/manual/5.1/manual.html#5.4.1 * http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns * http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns ]] -- This sub-routine is exported for use in other modules function str._match( s, pattern, start, match_index, plain_flag, nomatch ) if s == '' then return str._error( 'Target string is empty' ) end if pattern == '' then return str._error( 'Pattern string is empty' ) end start = tonumber(start) or 1 if math.abs(start) < 1 or math.abs(start) > mw.ustring.len( s ) then return str._error( 'Requested start is out of range' ) end if match_index == 0 then return str._error( 'Match index is out of range' ) end if plain_flag then pattern = str._escapePattern( pattern ) end local result if match_index == 1 then -- Find first match is simple case result = mw.ustring.match( s, pattern, start ) else if start > 1 then s = mw.ustring.sub( s, start ) end local iterator = mw.ustring.gmatch(s, pattern) if match_index > 0 then -- Forward search for w in iterator do match_index = match_index - 1 if match_index == 0 then result = w break end end else -- Reverse search local result_table = {} local count = 1 for w in iterator do result_table[count] = w count = count + 1 end result = result_table[ count + match_index ] end end if result == nil then if nomatch == nil then return str._error( 'Match not found' ) else return nomatch end else return result end end --[[ match This function returns a substring from the source string that matches a specified pattern. Usage: {{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}} OR {{#invoke:String|match|s=source_string|pattern=pattern_string|start=start_index |match=match_number|plain=plain_flag|nomatch=nomatch_output}} Parameters s: The string to search pattern: The pattern or string to find within the string start: The index within the source string to start the search. The first character of the string has index 1. Defaults to 1. match: In some cases it may be possible to make multiple matches on a single string. This specifies which match to return, where the first match is match= 1. If a negative number is specified then a match is returned counting from the last match. Hence match = -1 is the same as requesting the last match. Defaults to 1. plain: A flag indicating that the pattern should be understood as plain text. Defaults to false. nomatch: If no match is found, output the "nomatch" value rather than an error. If invoked using named parameters, Mediawiki will automatically remove any leading or trailing whitespace from each string. In some circumstances this is desirable, in other cases one may want to preserve the whitespace. If the match_number or start_index are out of range for the string being queried, then this function generates an error. An error is also generated if no match is found. If one adds the parameter ignore_errors=true, then the error will be suppressed and an empty string will be returned on any failure. For information on constructing Lua patterns, a form of [regular expression], see: * http://www.lua.org/manual/5.1/manual.html#5.4.1 * http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns * http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns ]] -- This is the entry point for #invoke:String|match function str.match( frame ) local new_args = str._getParameters( frame.args, {'s', 'pattern', 'start', 'match', 'plain', 'nomatch'} ) local s = new_args['s'] or '' local start = tonumber( new_args['start'] ) or 1 local plain_flag = str._getBoolean( new_args['plain'] or false ) local pattern = new_args['pattern'] or '' local match_index = math.floor( tonumber(new_args['match']) or 1 ) local nomatch = new_args['nomatch'] return str._match( s, pattern, start, match_index, plain_flag, nomatch ) end --[[ pos This function returns a single character from the target string at position pos. Usage: {{#invoke:String|pos|target_string|index_value}} OR {{#invoke:String|pos|target=target_string|pos=index_value}} Parameters target: The string to search pos: The index for the character to return If invoked using named parameters, Mediawiki will automatically remove any leading or trailing whitespace from the target string. In some circumstances this is desirable, in other cases one may want to preserve the whitespace. The first character has an index value of 1. If one requests a negative value, this function will select a character by counting backwards from the end of the string. In other words pos = -1 is the same as asking for the last character. A requested value of zero, or a value greater than the length of the string returns an error. ]] function str.pos( frame ) local new_args = str._getParameters( frame.args, {'target', 'pos'} ) local target_str = new_args['target'] or '' local pos = tonumber( new_args['pos'] ) or 0 if pos == 0 or math.abs(pos) > mw.ustring.len( target_str ) then return str._error( 'String index out of range' ) end return mw.ustring.sub( target_str, pos, pos ) end --[[ str_find This function duplicates the behavior of {{str_find}}, including all of its quirks. This is provided in order to support existing templates, but is NOT RECOMMENDED for new code and templates. New code is recommended to use the "find" function instead. Returns the first index in "source" that is a match to "target". Indexing is 1-based, and the function returns -1 if the "target" string is not present in "source". Important Note: If the "target" string is empty / missing, this function returns a value of "1", which is generally unexpected behavior, and must be accounted for separatetly. ]] function str.str_find( frame ) local new_args = str._getParameters( frame.args, {'source', 'target'} ) local source_str = new_args['source'] or '' local target_str = new_args['target'] or '' if target_str == '' then return 1 end local start = mw.ustring.find( source_str, target_str, 1, true ) if start == nil then start = -1 end return start end --[[ find This function allows one to search for a target string or pattern within another string. Usage: {{#invoke:String|find|source_str|target_string|start_index|plain_flag}} OR {{#invoke:String|find|source=source_str|target=target_str|start=start_index|plain=plain_flag}} Parameters source: The string to search target: The string or pattern to find within source start: The index within the source string to start the search, defaults to 1 plain: Boolean flag indicating that target should be understood as plain text and not as a Lua style regular expression, defaults to true If invoked using named parameters, Mediawiki will automatically remove any leading or trailing whitespace from the parameter. In some circumstances this is desirable, in other cases one may want to preserve the whitespace. This function returns the first index >= "start" where "target" can be found within "source". Indices are 1-based. If "target" is not found, then this function returns 0. If either "source" or "target" are missing / empty, this function also returns 0. This function should be safe for UTF-8 strings. ]] function str.find( frame ) local new_args = str._getParameters( frame.args, {'source', 'target', 'start', 'plain' } ) local source_str = new_args['source'] or '' local pattern = new_args['target'] or '' local start_pos = tonumber(new_args['start']) or 1 local plain = new_args['plain'] or true if source_str == '' or pattern == '' then return 0 end plain = str._getBoolean( plain ) local start = mw.ustring.find( source_str, pattern, start_pos, plain ) if start == nil then start = 0 end return start end --[[ replace This function allows one to replace a target string or pattern within another string. Usage: {{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}} OR {{#invoke:String|replace|source=source_string|pattern=pattern_string|replace=replace_string| count=replacement_count|plain=plain_flag}} Parameters source: The string to search pattern: The string or pattern to find within source replace: The replacement text count: The number of occurences to replace, defaults to all. plain: Boolean flag indicating that pattern should be understood as plain text and not as a Lua style regular expression, defaults to true ]] function str.replace( frame ) local new_args = str._getParameters( frame.args, {'source', 'pattern', 'replace', 'count', 'plain' } ) local source_str = new_args['source'] or '' local pattern = new_args['pattern'] or '' local replace = new_args['replace'] or '' local count = tonumber( new_args['count'] ) local plain = new_args['plain'] or true if source_str == '' or pattern == '' then return source_str end plain = str._getBoolean( plain ) if plain then pattern = str._escapePattern( pattern ) replace = mw.ustring.gsub( replace, "%%", "%%%%" ) --Only need to escape replacement sequences. end local result if count ~= nil then result = mw.ustring.gsub( source_str, pattern, replace, count ) else result = mw.ustring.gsub( source_str, pattern, replace ) end return result end --[[ simple function to pipe string.rep to templates. ]] function str.rep( frame ) local repetitions = tonumber( frame.args[2] ) if not repetitions then return str._error( 'function rep expects a number as second parameter, received "' .. ( frame.args[2] or '' ) .. '"' ) end return string.rep( frame.args[1] or '', repetitions ) end --[[ escapePattern This function escapes special characters from a Lua string pattern. See [1] for details on how patterns work. [1] https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns Usage: {{#invoke:String|escapePattern|pattern_string}} Parameters pattern_string: The pattern string to escape. ]] function str.escapePattern( frame ) local pattern_str = frame.args[1] if not pattern_str then return str._error( 'No pattern string specified' ) end local result = str._escapePattern( pattern_str ) return result end --[[ count This function counts the number of occurrences of one string in another. ]] function str.count(frame) local args = str._getParameters(frame.args, {'source', 'pattern', 'plain'}) local source = args.source or '' local pattern = args.pattern or '' local plain = str._getBoolean(args.plain or true) if plain then pattern = str._escapePattern(pattern) end local _, count = mw.ustring.gsub(source, pattern, '') return count end --[[ endswith This function determines whether a string ends with another string. ]] function str.endswith(frame) local args = str._getParameters(frame.args, {'source', 'pattern'}) local source = args.source or '' local pattern = args.pattern or '' if pattern == '' then -- All strings end with the empty string. return "yes" end if mw.ustring.sub(source, -mw.ustring.len(pattern), -1) == pattern then return "yes" else return "" end end --[[ join Join all non empty arguments together; the first argument is the separator. Usage: {{#invoke:String|join|sep|one|two|three}} ]] function str.join(frame) local args = {} local sep for _, v in ipairs( frame.args ) do if sep then if v ~= '' then table.insert(args, v) end else sep = v end end return table.concat( args, sep or '' ) end --[[ Helper function that populates the argument list given that user may need to use a mix of named and unnamed parameters. This is relevant because named parameters are not identical to unnamed parameters due to string trimming, and when dealing with strings we sometimes want to either preserve or remove that whitespace depending on the application. ]] function str._getParameters( frame_args, arg_list ) local new_args = {} local index = 1 local value for _, arg in ipairs( arg_list ) do value = frame_args[arg] if value == nil then value = frame_args[index] index = index + 1 end new_args[arg] = value end return new_args end --[[ Helper function to handle error messages. ]] function str._error( error_str ) local frame = mw.getCurrentFrame() local error_category = frame.args.error_category or 'Errors reported by Module String' local ignore_errors = frame.args.ignore_errors or false local no_category = frame.args.no_category or false if str._getBoolean(ignore_errors) then return '' end local error_str = '<strong class="error">String Module Error: ' .. error_str .. '</strong>' if error_category ~= '' and not str._getBoolean( no_category ) then error_str = '[[Category:' .. error_category .. ']]' .. error_str end return error_str end --[[ Helper Function to interpret boolean strings ]] function str._getBoolean( boolean_str ) local boolean_value if type( boolean_str ) == 'string' then boolean_str = boolean_str:lower() if boolean_str == 'false' or boolean_str == 'no' or boolean_str == '0' or boolean_str == '' then boolean_value = false else boolean_value = true end elseif type( boolean_str ) == 'boolean' then boolean_value = boolean_str else error( 'No boolean value found' ) end return boolean_value end --[[ Helper function that escapes all pattern characters so that they will be treated as plain text. ]] function str._escapePattern( pattern_str ) return mw.ustring.gsub( pattern_str, "([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1" ) end return str 6df794dd52434e0f6a372c9918f5a9dedd15f579 Module:TNT 828 83 158 157 2022-07-21T19:50:59Z Wikiricky 1 1 revision imported Scribunto text/plain -- -- INTRO: (!!! DO NOT RENAME THIS PAGE !!!) -- This module allows any template or module to be copy/pasted between -- wikis without any translation changes. All translation text is stored -- in the global Data:*.tab pages on Commons, and used everywhere. -- -- SEE: https://www.mediawiki.org/wiki/Multilingual_Templates_and_Modules -- -- ATTENTION: -- Please do NOT rename this module - it has to be identical on all wikis. -- This code is maintained at https://www.mediawiki.org/wiki/Module:TNT -- Please do not modify it anywhere else, as it may get copied and override your changes. -- Suggestions can be made at https://www.mediawiki.org/wiki/Module_talk:TNT -- -- DESCRIPTION: -- The "msg" function uses a Commons dataset to translate a message -- with a given key (e.g. source-table), plus optional arguments -- to the wiki markup in the current content language. -- Use lang=xx to set language. Example: -- -- {{#invoke:TNT | msg -- | I18n/Template:Graphs.tab <!-- https://commons.wikimedia.org/wiki/Data:I18n/Template:Graphs.tab --> -- | source-table <!-- uses a translation message with id = "source-table" --> -- | param1 }} <!-- optional parameter --> -- -- -- The "doc" function will generate the <templatedata> parameter documentation for templates. -- This way all template parameters can be stored and localized in a single Commons dataset. -- NOTE: "doc" assumes that all documentation is located in Data:Templatedata/* on Commons. -- -- {{#invoke:TNT | doc | Graph:Lines }} -- uses https://commons.wikimedia.org/wiki/Data:Templatedata/Graph:Lines.tab -- if the current page is Template:Graph:Lines/doc -- local p = {} local i18nDataset = 'I18n/Module:TNT.tab' -- Forward declaration of the local functions local sanitizeDataset, loadData, link, formatMessage function p.msg(frame) local dataset, id local params = {} local lang = nil for k, v in pairs(frame.args) do if k == 1 then dataset = mw.text.trim(v) elseif k == 2 then id = mw.text.trim(v) elseif type(k) == 'number' then table.insert(params, mw.text.trim(v)) elseif k == 'lang' and v ~= '_' then lang = mw.text.trim(v) end end return formatMessage(dataset, id, params, lang) end -- Identical to p.msg() above, but used from other lua modules -- Parameters: name of dataset, message key, optional arguments -- Example with 2 params: format('I18n/Module:TNT', 'error_bad_msgkey', 'my-key', 'my-dataset') function p.format(dataset, key, ...) local checkType = require('libraryUtil').checkType checkType('format', 1, dataset, 'string') checkType('format', 2, key, 'string') return formatMessage(dataset, key, {...}) end -- Identical to p.msg() above, but used from other lua modules with the language param -- Parameters: language code, name of dataset, message key, optional arguments -- Example with 2 params: formatInLanguage('es', I18n/Module:TNT', 'error_bad_msgkey', 'my-key', 'my-dataset') function p.formatInLanguage(lang, dataset, key, ...) local checkType = require('libraryUtil').checkType checkType('formatInLanguage', 1, lang, 'string') checkType('formatInLanguage', 2, dataset, 'string') checkType('formatInLanguage', 3, key, 'string') return formatMessage(dataset, key, {...}, lang) end -- Obsolete function that adds a 'c:' prefix to the first param. -- "Sandbox/Sample.tab" -> 'c:Data:Sandbox/Sample.tab' function p.link(frame) return link(frame.args[1]) end function p.doc(frame) local dataset = 'Templatedata/' .. sanitizeDataset(frame.args[1]) return frame:extensionTag('templatedata', p.getTemplateData(dataset)) .. formatMessage(i18nDataset, 'edit_doc', {link(dataset)}) end function p.getTemplateData(dataset) -- TODO: add '_' parameter once lua starts reindexing properly for "all" languages local data = loadData(dataset) local names = {} for _, field in pairs(data.schema.fields) do table.insert(names, field.name) end local params = {} local paramOrder = {} for _, row in pairs(data.data) do local newVal = {} local name = nil for pos, val in pairs(row) do local columnName = names[pos] if columnName == 'name' then name = val else newVal[columnName] = val end end if name then params[name] = newVal table.insert(paramOrder, name) end end -- Work around json encoding treating {"1":{...}} as an [{...}] params['zzz123']='' local json = mw.text.jsonEncode({ params=params, paramOrder=paramOrder, description=data.description }) json = string.gsub(json,'"zzz123":"",?', "") return json end -- Local functions sanitizeDataset = function(dataset) if not dataset then return nil end dataset = mw.text.trim(dataset) if dataset == '' then return nil elseif string.sub(dataset,-4) ~= '.tab' then return dataset .. '.tab' else return dataset end end loadData = function(dataset, lang) dataset = sanitizeDataset(dataset) if not dataset then error(formatMessage(i18nDataset, 'error_no_dataset', {})) end -- Give helpful error to thirdparties who try and copy this module. if not mw.ext or not mw.ext.data or not mw.ext.data.get then error('Missing JsonConfig extension; Cannot load https://commons.wikimedia.org/wiki/Data:' .. dataset) end local data = mw.ext.data.get(dataset, lang) if data == false then if dataset == i18nDataset then -- Prevent cyclical calls error('Missing Commons dataset ' .. i18nDataset) else error(formatMessage(i18nDataset, 'error_bad_dataset', {link(dataset)})) end end return data end -- Given a dataset name, convert it to a title with the 'commons:data:' prefix link = function(dataset) return 'c:Data:' .. mw.text.trim(dataset or '') end formatMessage = function(dataset, key, params, lang) for _, row in pairs(loadData(dataset, lang).data) do local id, msg = unpack(row) if id == key then local result = mw.message.newRawMessage(msg, unpack(params or {})) return result:plain() end end if dataset == i18nDataset then -- Prevent cyclical calls error('Invalid message key "' .. key .. '"') else error(formatMessage(i18nDataset, 'error_bad_msgkey', {key, link(dataset)})) end end return p 9d0d10e54abd232c806dcabccaf03e52858634a1 Module:TableTools 828 84 160 159 2022-07-21T19:50:59Z Wikiricky 1 1 revision imported Scribunto text/plain ------------------------------------------------------------------------------------ -- TableTools -- -- -- -- This module includes a number of functions for dealing with Lua tables. -- -- It is a meta-module, meant to be called from other Lua modules, and should not -- -- be called directly from #invoke. -- ------------------------------------------------------------------------------------ local libraryUtil = require('libraryUtil') local p = {} -- Define often-used variables and functions. local floor = math.floor local infinity = math.huge local checkType = libraryUtil.checkType local checkTypeMulti = libraryUtil.checkTypeMulti ------------------------------------------------------------------------------------ -- isPositiveInteger -- -- This function returns true if the given value is a positive integer, and false -- if not. Although it doesn't operate on tables, it is included here as it is -- useful for determining whether a given table key is in the array part or the -- hash part of a table. ------------------------------------------------------------------------------------ function p.isPositiveInteger(v) return type(v) == 'number' and v >= 1 and floor(v) == v and v < infinity end ------------------------------------------------------------------------------------ -- isNan -- -- This function returns true if the given number is a NaN value, and false if -- not. Although it doesn't operate on tables, it is included here as it is useful -- for determining whether a value can be a valid table key. Lua will generate an -- error if a NaN is used as a table key. ------------------------------------------------------------------------------------ function p.isNan(v) return type(v) == 'number' and v ~= v end ------------------------------------------------------------------------------------ -- shallowClone -- -- This returns a clone of a table. The value returned is a new table, but all -- subtables and functions are shared. Metamethods are respected, but the returned -- table will have no metatable of its own. ------------------------------------------------------------------------------------ function p.shallowClone(t) checkType('shallowClone', 1, t, 'table') local ret = {} for k, v in pairs(t) do ret[k] = v end return ret end ------------------------------------------------------------------------------------ -- removeDuplicates -- -- This removes duplicate values from an array. Non-positive-integer keys are -- ignored. The earliest value is kept, and all subsequent duplicate values are -- removed, but otherwise the array order is unchanged. ------------------------------------------------------------------------------------ function p.removeDuplicates(arr) checkType('removeDuplicates', 1, arr, 'table') local isNan = p.isNan local ret, exists = {}, {} for _, v in ipairs(arr) do if isNan(v) then -- NaNs can't be table keys, and they are also unique, so we don't need to check existence. ret[#ret + 1] = v else if not exists[v] then ret[#ret + 1] = v exists[v] = true end end end return ret end ------------------------------------------------------------------------------------ -- numKeys -- -- This takes a table and returns an array containing the numbers of any numerical -- keys that have non-nil values, sorted in numerical order. ------------------------------------------------------------------------------------ function p.numKeys(t) checkType('numKeys', 1, t, 'table') local isPositiveInteger = p.isPositiveInteger local nums = {} for k in pairs(t) do if isPositiveInteger(k) then nums[#nums + 1] = k end end table.sort(nums) return nums end ------------------------------------------------------------------------------------ -- affixNums -- -- This takes a table and returns an array containing the numbers of keys with the -- specified prefix and suffix. For example, for the table -- {a1 = 'foo', a3 = 'bar', a6 = 'baz'} and the prefix "a", affixNums will return -- {1, 3, 6}. ------------------------------------------------------------------------------------ function p.affixNums(t, prefix, suffix) checkType('affixNums', 1, t, 'table') checkType('affixNums', 2, prefix, 'string', true) checkType('affixNums', 3, suffix, 'string', true) local function cleanPattern(s) -- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally. return s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1') end prefix = prefix or '' suffix = suffix or '' prefix = cleanPattern(prefix) suffix = cleanPattern(suffix) local pattern = '^' .. prefix .. '([1-9]%d*)' .. suffix .. '$' local nums = {} for k in pairs(t) do if type(k) == 'string' then local num = mw.ustring.match(k, pattern) if num then nums[#nums + 1] = tonumber(num) end end end table.sort(nums) return nums end ------------------------------------------------------------------------------------ -- numData -- -- Given a table with keys like {"foo1", "bar1", "foo2", "baz2"}, returns a table -- of subtables in the format -- {[1] = {foo = 'text', bar = 'text'}, [2] = {foo = 'text', baz = 'text'}}. -- Keys that don't end with an integer are stored in a subtable named "other". The -- compress option compresses the table so that it can be iterated over with -- ipairs. ------------------------------------------------------------------------------------ function p.numData(t, compress) checkType('numData', 1, t, 'table') checkType('numData', 2, compress, 'boolean', true) local ret = {} for k, v in pairs(t) do local prefix, num = mw.ustring.match(tostring(k), '^([^0-9]*)([1-9][0-9]*)$') if num then num = tonumber(num) local subtable = ret[num] or {} if prefix == '' then -- Positional parameters match the blank string; put them at the start of the subtable instead. prefix = 1 end subtable[prefix] = v ret[num] = subtable else local subtable = ret.other or {} subtable[k] = v ret.other = subtable end end if compress then local other = ret.other ret = p.compressSparseArray(ret) ret.other = other end return ret end ------------------------------------------------------------------------------------ -- compressSparseArray -- -- This takes an array with one or more nil values, and removes the nil values -- while preserving the order, so that the array can be safely traversed with -- ipairs. ------------------------------------------------------------------------------------ function p.compressSparseArray(t) checkType('compressSparseArray', 1, t, 'table') local ret = {} local nums = p.numKeys(t) for _, num in ipairs(nums) do ret[#ret + 1] = t[num] end return ret end ------------------------------------------------------------------------------------ -- sparseIpairs -- -- This is an iterator for sparse arrays. It can be used like ipairs, but can -- handle nil values. ------------------------------------------------------------------------------------ function p.sparseIpairs(t) checkType('sparseIpairs', 1, t, 'table') local nums = p.numKeys(t) local i = 0 local lim = #nums return function () i = i + 1 if i <= lim then local key = nums[i] return key, t[key] else return nil, nil end end end ------------------------------------------------------------------------------------ -- size -- -- This returns the size of a key/value pair table. It will also work on arrays, -- but for arrays it is more efficient to use the # operator. ------------------------------------------------------------------------------------ function p.size(t) checkType('size', 1, t, 'table') local i = 0 for _ in pairs(t) do i = i + 1 end return i end local function defaultKeySort(item1, item2) -- "number" < "string", so numbers will be sorted before strings. local type1, type2 = type(item1), type(item2) if type1 ~= type2 then return type1 < type2 elseif type1 == 'table' or type1 == 'boolean' or type1 == 'function' then return tostring(item1) < tostring(item2) else return item1 < item2 end end ------------------------------------------------------------------------------------ -- keysToList -- -- Returns an array of the keys in a table, sorted using either a default -- comparison function or a custom keySort function. ------------------------------------------------------------------------------------ function p.keysToList(t, keySort, checked) if not checked then checkType('keysToList', 1, t, 'table') checkTypeMulti('keysToList', 2, keySort, {'function', 'boolean', 'nil'}) end local arr = {} local index = 1 for k in pairs(t) do arr[index] = k index = index + 1 end if keySort ~= false then keySort = type(keySort) == 'function' and keySort or defaultKeySort table.sort(arr, keySort) end return arr end ------------------------------------------------------------------------------------ -- sortedPairs -- -- Iterates through a table, with the keys sorted using the keysToList function. -- If there are only numerical keys, sparseIpairs is probably more efficient. ------------------------------------------------------------------------------------ function p.sortedPairs(t, keySort) checkType('sortedPairs', 1, t, 'table') checkType('sortedPairs', 2, keySort, 'function', true) local arr = p.keysToList(t, keySort, true) local i = 0 return function () i = i + 1 local key = arr[i] if key ~= nil then return key, t[key] else return nil, nil end end end ------------------------------------------------------------------------------------ -- isArray -- -- Returns true if the given value is a table and all keys are consecutive -- integers starting at 1. ------------------------------------------------------------------------------------ function p.isArray(v) if type(v) ~= 'table' then return false end local i = 0 for _ in pairs(v) do i = i + 1 if v[i] == nil then return false end end return true end ------------------------------------------------------------------------------------ -- isArrayLike -- -- Returns true if the given value is iterable and all keys are consecutive -- integers starting at 1. ------------------------------------------------------------------------------------ function p.isArrayLike(v) if not pcall(pairs, v) then return false end local i = 0 for _ in pairs(v) do i = i + 1 if v[i] == nil then return false end end return true end ------------------------------------------------------------------------------------ -- invert -- -- Transposes the keys and values in an array. For example, {"a", "b", "c"} -> -- {a = 1, b = 2, c = 3}. Duplicates are not supported (result values refer to -- the index of the last duplicate) and NaN values are ignored. ------------------------------------------------------------------------------------ function p.invert(arr) checkType("invert", 1, arr, "table") local isNan = p.isNan local map = {} for i, v in ipairs(arr) do if not isNan(v) then map[v] = i end end return map end ------------------------------------------------------------------------------------ -- listToSet -- -- Creates a set from the array part of the table. Indexing the set by any of the -- values of the array returns true. For example, {"a", "b", "c"} -> -- {a = true, b = true, c = true}. NaN values are ignored as Lua considers them -- never equal to any value (including other NaNs or even themselves). ------------------------------------------------------------------------------------ function p.listToSet(arr) checkType("listToSet", 1, arr, "table") local isNan = p.isNan local set = {} for _, v in ipairs(arr) do if not isNan(v) then set[v] = true end end return set end ------------------------------------------------------------------------------------ -- deepCopy -- -- Recursive deep copy function. Preserves identities of subtables. ------------------------------------------------------------------------------------ local function _deepCopy(orig, includeMetatable, already_seen) -- Stores copies of tables indexed by the original table. already_seen = already_seen or {} local copy = already_seen[orig] if copy ~= nil then return copy end if type(orig) == 'table' then copy = {} for orig_key, orig_value in pairs(orig) do copy[_deepCopy(orig_key, includeMetatable, already_seen)] = _deepCopy(orig_value, includeMetatable, already_seen) end already_seen[orig] = copy if includeMetatable then local mt = getmetatable(orig) if mt ~= nil then local mt_copy = _deepCopy(mt, includeMetatable, already_seen) setmetatable(copy, mt_copy) already_seen[mt] = mt_copy end end else -- number, string, boolean, etc copy = orig end return copy end function p.deepCopy(orig, noMetatable, already_seen) checkType("deepCopy", 3, already_seen, "table", true) return _deepCopy(orig, not noMetatable, already_seen) end ------------------------------------------------------------------------------------ -- sparseConcat -- -- Concatenates all values in the table that are indexed by a number, in order. -- sparseConcat{a, nil, c, d} => "acd" -- sparseConcat{nil, b, c, d} => "bcd" ------------------------------------------------------------------------------------ function p.sparseConcat(t, sep, i, j) local arr = {} local arr_i = 0 for _, v in p.sparseIpairs(t) do arr_i = arr_i + 1 arr[arr_i] = v end return table.concat(arr, sep, i, j) end ------------------------------------------------------------------------------------ -- length -- -- Finds the length of an array, or of a quasi-array with keys such as "data1", -- "data2", etc., using an exponential search algorithm. It is similar to the -- operator #, but may return a different value when there are gaps in the array -- portion of the table. Intended to be used on data loaded with mw.loadData. For -- other tables, use #. -- Note: #frame.args in frame object always be set to 0, regardless of the number -- of unnamed template parameters, so use this function for frame.args. ------------------------------------------------------------------------------------ function p.length(t, prefix) -- requiring module inline so that [[Module:Exponential search]] which is -- only needed by this one function doesn't get millions of transclusions local expSearch = require("Module:Exponential search") checkType('length', 1, t, 'table') checkType('length', 2, prefix, 'string', true) return expSearch(function (i) local key if prefix then key = prefix .. tostring(i) else key = i end return t[key] ~= nil end) or 0 end ------------------------------------------------------------------------------------ -- inArray -- -- Returns true if valueToFind is a member of the array, and false otherwise. ------------------------------------------------------------------------------------ function p.inArray(arr, valueToFind) checkType("inArray", 1, arr, "table") -- if valueToFind is nil, error? for _, v in ipairs(arr) do if v == valueToFind then return true end end return false end return p 085e7094ac84eb0132ee65822cf3f69cd8ba3d81 Module:Template link general 828 85 162 161 2022-07-21T19:51:00Z Wikiricky 1 1 revision imported Scribunto text/plain -- This implements Template:Tlg local getArgs = require('Module:Arguments').getArgs local p = {} -- Is a string non-empty? local function _ne(s) return s ~= nil and s ~= "" end local nw = mw.text.nowiki local function addTemplate(s) local i, _ = s:find(':', 1, true) if i == nil then return 'Template:' .. s end local ns = s:sub(1, i - 1) if ns == '' or mw.site.namespaces[ns] then return s else return 'Template:' .. s end end local function trimTemplate(s) local needle = 'template:' if s:sub(1, needle:len()):lower() == needle then return s:sub(needle:len() + 1) else return s end end local function linkTitle(args) if _ne(args.nolink) then return args['1'] end local titleObj local titlePart = '[[' if args['1'] then -- This handles :Page and other NS titleObj = mw.title.new(args['1'], 'Template') else titleObj = mw.title.getCurrentTitle() end titlePart = titlePart .. (titleObj ~= nil and titleObj.fullText or addTemplate(args['1'])) local textPart = args.alttext if not _ne(textPart) then if titleObj ~= nil then textPart = titleObj:inNamespace("Template") and args['1'] or titleObj.fullText else -- redlink textPart = args['1'] end end if _ne(args.subst) then -- HACK: the ns thing above is probably broken textPart = 'subst:' .. textPart end if _ne(args.brace) then textPart = nw('{{') .. textPart .. nw('}}') elseif _ne(args.braceinside) then textPart = nw('{') .. textPart .. nw('}') end titlePart = titlePart .. '|' .. textPart .. ']]' if _ne(args.braceinside) then titlePart = nw('{') .. titlePart .. nw('}') end return titlePart end function p.main(frame) local args = getArgs(frame, { trim = true, removeBlanks = false }) return p._main(args) end function p._main(args) local bold = _ne(args.bold) or _ne(args.boldlink) or _ne(args.boldname) local italic = _ne(args.italic) or _ne(args.italics) local dontBrace = _ne(args.brace) or _ne(args.braceinside) local code = _ne(args.code) or _ne(args.tt) local show_result = _ne(args._show_result) local expand = _ne(args._expand) -- Build the link part local titlePart = linkTitle(args) if bold then titlePart = "'''" .. titlePart .. "'''" end if _ne(args.nowrapname) then titlePart = '<span class="nowrap">' .. titlePart .. '</span>' end -- Build the arguments local textPart = "" local textPartBuffer = "&#124;" local codeArguments = {} local codeArgumentsString = "" local i = 2 local j = 1 while args[i] do local val = args[i] if val ~= "" then if _ne(args.nowiki) then -- Unstrip nowiki tags first because calling nw on something that already contains nowiki tags will -- mangle the nowiki strip marker and result in literal UNIQ...QINU showing up val = nw(mw.text.unstripNoWiki(val)) end local k, v = string.match(val, "(.*)=(.*)") if not k then codeArguments[j] = val j = j + 1 else codeArguments[k] = v end codeArgumentsString = codeArgumentsString .. textPartBuffer .. val if italic then val = '<span style="font-style:italic;">' .. val .. '</span>' end textPart = textPart .. textPartBuffer .. val end i = i + 1 end -- final wrap local ret = titlePart .. textPart if not dontBrace then ret = nw('{{') .. ret .. nw('}}') end if _ne(args.a) then ret = nw('*') .. '&nbsp;' .. ret end if _ne(args.kbd) then ret = '<kbd>' .. ret .. '</kbd>' end if code then ret = '<code>' .. ret .. '</code>' elseif _ne(args.plaincode) then ret = '<code style="border:none;background:transparent;">' .. ret .. '</code>' end if _ne(args.nowrap) then ret = '<span class="nowrap">' .. ret .. '</span>' end --[[ Wrap as html?? local span = mw.html.create('span') span:wikitext(ret) --]] if _ne(args.debug) then ret = ret .. '\n<pre>' .. mw.text.encode(mw.dumpObject(args)) .. '</pre>' end if show_result then local result = mw.getCurrentFrame():expandTemplate{title = addTemplate(args[1]), args = codeArguments} ret = ret .. " → " .. result end if expand then local query = mw.text.encode('{{' .. addTemplate(args[1]) .. string.gsub(codeArgumentsString, textPartBuffer, "|") .. '}}') local url = mw.uri.fullUrl('special:ExpandTemplates', 'wpInput=' .. query) mw.log() ret = ret .. " [" .. tostring(url) .. "]" end return ret end return p c7307fa3959d308a2dd7fd2f5009c1ce6db3d122 Module:Transclusion count 828 86 164 163 2022-07-21T19:51:00Z Wikiricky 1 1 revision imported Scribunto text/plain local p = {} function p.fetch(frame) local template = nil local return_value = nil -- Use demo parameter if it exists, otherswise use current template name local namespace = mw.title.getCurrentTitle().namespace if frame.args["demo"] and frame.args["demo"] ~= "" then template = frame.args["demo"] elseif namespace == 10 then -- Template namespace template = mw.title.getCurrentTitle().text elseif namespace == 828 then -- Module namespace template = (mw.site.namespaces[828].name .. ":" .. mw.title.getCurrentTitle().text) end -- If in template or module namespace, look up count in /data if template ~= nil then namespace = mw.title.new(template, "Template").namespace if namespace == 10 or namespace == 828 then template = mw.ustring.gsub(template, "/doc$", "") -- strip /doc from end local index = mw.ustring.sub(mw.title.new(template).text,1,1) local status, data = pcall(function () return(mw.loadData('Module:Transclusion_count/data/' .. (mw.ustring.find(index, "%a") and index or "other"))) end) if status then return_value = tonumber(data[mw.ustring.gsub(template, " ", "_")]) end end end -- If database value doesn't exist, use value passed to template if return_value == nil and frame.args[1] ~= nil then local arg1=mw.ustring.match(frame.args[1], '[%d,]+') if arg1 and arg1 ~= '' then return_value = tonumber(frame:callParserFunction('formatnum', arg1, 'R')) end end return return_value end -- Tabulate this data for [[Wikipedia:Database reports/Templates transcluded on the most pages]] function p.tabulate(frame) local list = {} for i = 65, 91 do local data = mw.loadData('Module:Transclusion count/data/' .. ((i == 91) and 'other' or string.char(i))) for name, count in pairs(data) do table.insert(list, {mw.title.new(name, "Template").fullText, count}) end end table.sort(list, function(a, b) return (a[2] == b[2]) and (a[1] < b[1]) or (a[2] > b[2]) end) local lang = mw.getContentLanguage(); for i = 1, #list do list[i] = ('|-\n| %d || [[%s]] || %s\n'):format(i, list[i][1]:gsub('_', ' '), lang:formatNum(list[i][2])) end return table.concat(list) end return p 9b2940dfd623cf550f748fd5bfc25b7f69cd14cd Module:Transclusion count/data/D 828 87 166 165 2022-07-21T19:51:00Z Wikiricky 1 1 revision imported Scribunto text/plain return { ["D&D"] = 3800, ["D&D_to-do"] = 5500, ["D-da"] = 3000, ["DANFS"] = 8400, ["DC-Comics-trademark-copyright"] = 2100, ["DCS_Sri_Lanka"] = 2100, ["DDR"] = 2800, ["DEC"] = 8300, ["DECADE"] = 266000, ["DEN"] = 6500, ["DEU"] = 17000, ["DMC"] = 60000, ["DMCA"] = 1940000, ["DNB"] = 8600, ["DNB-Portal"] = 2100, ["DNB_portal"] = 3900, ["DNK"] = 7600, ["DNZB"] = 3500, ["DOI"] = 3900, ["DOWs"] = 2600, ["DPP"] = 92000, ["DPP/logo"] = 92000, ["DRV_links"] = 3400, ["DWT"] = 2200, ["DYKC"] = 6700, ["DYKF"] = 2100, ["DYK_blue"] = 3400, ["DYK_checklist"] = 9300, ["DYK_conditions"] = 58000, ["DYK_files"] = 2100, ["DYK_header"] = 25000, ["DYK_nompage_links"] = 69000, ["DYK_talk"] = 100000, ["DYK_talk/date"] = 100000, ["DYK_tools"] = 47000, ["DYK_tools/styles.css"] = 47000, ["DYKfile"] = 12000, ["DZA"] = 2600, ["Dab"] = 16000, ["Dablink"] = 2400, ["Dagger"] = 15000, ["Dashboard.wikiedu.org_assignment"] = 4600, ["Dashboard.wikiedu.org_bibliography/guide"] = 2900, ["Dashboard.wikiedu.org_course_header"] = 5200, ["Dashboard.wikiedu.org_course_header/edit-note"] = 5200, ["Dashboard.wikiedu.org_draft_template/about_this_sandbox"] = 5300, ["Dashboard.wikiedu.org_evaluate_article/guide"] = 4300, ["Dashboard.wikiedu.org_peer_review/guide"] = 6500, ["Dashboard.wikiedu.org_sandbox"] = 79000, ["Dashboard.wikiedu.org_student_editor"] = 66000, ["Dashboard.wikiedu.org_student_program_sandbox"] = 78000, ["Dashboard.wikiedu.org_talk_course_link"] = 68000, ["Dashboard.wikiedu.org_user_talk"] = 2200, ["Date"] = 37000, ["Date-mf"] = 36000, ["Date_table_sorting"] = 38000, ["Dated_maintenance_category"] = 2000000, ["Davis_Cup_player"] = 2300, ["Day+1"] = 6800, ["Day-1"] = 8300, ["Dbox"] = 3000, ["Dda"] = 5100, ["Dead_YouTube_links"] = 2900, ["Dead_Youtube_links"] = 2900, ["Dead_link"] = 267000, ["Death-date"] = 11000, ["Death-date_and_age"] = 9800, ["Death_date"] = 8800, ["Death_date_and_age"] = 356000, ["Death_date_and_given_age"] = 2100, ["Death_year_and_age"] = 15000, ["Death_year_category_header"] = 2000, ["Decade"] = 2100, ["Decade_link"] = 32000, ["Decimals"] = 2500, ["Decline"] = 2500, ["Declined"] = 3100, ["Decrease"] = 31000, ["Define"] = 4900, ["Deg2DMS"] = 3300, ["Deletion_review_log_header"] = 5200, ["Deletion_review_log_header/Core"] = 5300, ["Delink"] = 1700000, ["Delink_question_hyphen-minus"] = 277000, ["Delrevxfd"] = 3400, ["Democratic_Party_(US)/meta/shading"] = 14000, ["Description_missing"] = 7700, ["Designation/abbreviation"] = 7900, ["Designation/color"] = 76000, ["Designation/colour"] = 78000, ["Designation/colour2"] = 16000, ["Designation/divbox"] = 27000, ["Designation/text"] = 40000, ["Designation_list"] = 4900, ["Details"] = 5400, ["DetailsLink"] = 5500, ["Detect_singular"] = 14000, ["Deutsche_Bahn_station_codes"] = 2200, ["DfE_performance_tables"] = 4500, ["Diff"] = 30000, ["Diff2"] = 11000, ["Digits"] = 19000, ["Directories_box"] = 3200, ["Disamb"] = 2200, ["Disambig"] = 64000, ["Disambig-Class"] = 12000, ["DisambigProj"] = 12000, ["DisambigProject"] = 150000, ["Disambigproject"] = 5700, ["Disambiguation"] = 211000, ["Disambiguation/cat"] = 210000, ["Disambiguation_needed"] = 2300, ["Disambiguation_page_short_description"] = 341000, ["Discogs_artist"] = 13000, ["Discogs_master"] = 10000, ["Discogs_release"] = 2700, ["Discussion_bottom"] = 11000, ["Discussion_top"] = 12000, ["DisestcatCountry"] = 9300, ["DisestcatCountry/core"] = 9300, ["DisestcatCountryDecade"] = 2600, ["DisestcatUSstate"] = 4800, ["DisestcatUSstate/core"] = 4800, ["Disputed"] = 2200, ["Distinguish"] = 87000, ["Disused_Rail_Start"] = 4000, ["Disused_rail_start"] = 4300, ["Disused_style"] = 4700, ["Div_col"] = 363000, ["Div_col/styles.css"] = 365000, ["Div_col_end"] = 279000, ["Div_col_start"] = 2700, ["Divbox"] = 302000, ["Divbox/styles.css"] = 327000, ["Dividing_line"] = 4100, ["Dmbox"] = 443000, ["Dmbox/styles.css"] = 443000, ["Do_not_move_to_Commons"] = 15000, ["Doc"] = 3300, ["Documentation"] = 82000, ["Documentation_subpage"] = 87000, ["Dog_opentask"] = 3300, ["Doi"] = 24000, ["Doing"] = 3500, ["Don't_edit_this_line"] = 98000, ["Don't_edit_this_line_always_display"] = 425000, ["Don't_edit_this_line_extinct"] = 425000, ["Don't_edit_this_line_link_target"] = 425000, ["Don't_edit_this_line_link_text"] = 425000, ["Don't_edit_this_line_parent"] = 425000, ["Don't_edit_this_line_rank"] = 425000, ["Don't_edit_this_line_refs"] = 98000, ["Don't_edit_this_line_same_as"] = 425000, ["Done"] = 96000, ["Doppelganger"] = 2700, ["Dot"] = 3000, ["Double+single"] = 2300, ["Double-dagger"] = 15000, ["Dr"] = 3400, ["Dr-logno"] = 3400, ["Dr-make"] = 3400, ["Dr-yr"] = 3400, ["Draft_article"] = 2900, ["Draft_article_check"] = 3000, ["Draft_categories"] = 2700, ["Draft_other"] = 115000, ["Draft_topics"] = 24000, ["Drafts_moved_from_mainspace"] = 8700, ["Draw"] = 3400, ["Draw_key"] = 16000, ["Draw_links"] = 8500, ["Drep"] = 3400, ["Drugbankcite"] = 4300, ["Drugbox"] = 7400, ["Drugs.com"] = 3300, ["Ds/editnotice"] = 2300, ["Ds/talk_notice"] = 5400, ["Ds/topics"] = 8200, ["Dsindex"] = 2400, ["Dts"] = 37000, ["Dubious"] = 8000, ["Duck"] = 2700, ["Dummytab"] = 4500, ["Duration"] = 36000, ["Dutch_municipality"] = 2600, ["Dyktalk"] = 43000, ["Dynamic_IP"] = 5800, ["Dynamic_list"] = 8800, ["Module:DYK_checklist"] = 9300, ["Module:DYK_checklist/data"] = 9300, ["Module:DYK_nompage_links"] = 69000, ["Module:Data"] = 144000, ["Module:Date"] = 1290000, ["Module:DateI18n"] = 67000, ["Module:Date_table_sorting"] = 38000, ["Module:DecodeEncode"] = 52000, ["Module:Delink"] = 1820000, ["Module:Detect_singular"] = 1160000, ["Module:Disambiguation"] = 316000, ["Module:Distinguish"] = 87000, ["Module:Documentation"] = 127000, ["Module:Documentation/config"] = 127000, ["Module:Documentation/styles.css"] = 126000, ["Module:Draft_topics"] = 24000, ["Module:Duration"] = 232000, } 8d1a6b12a88b2937c570f162f7a0aef8e64db613 Module:Uses TemplateStyles 828 88 168 167 2022-07-21T19:51:00Z Wikiricky 1 1 revision imported Scribunto text/plain local yesno = require('Module:Yesno') local mList = require('Module:List') local mTableTools = require('Module:TableTools') local mMessageBox = require('Module:Message box') local TNT = require('Module:TNT') local p = {} local function format(msg, ...) return TNT.format('I18n/Uses TemplateStyles', msg, ...) end local function getConfig() return mw.loadData('Module:Uses TemplateStyles/config') end local function renderBox(tStyles) local boxArgs = { type = 'notice', small = true, image = string.format('[[File:Farm-Fresh css add.svg|32px|alt=%s]]', format('logo-alt')) } if #tStyles < 1 then boxArgs.text = string.format('<strong class="error">%s</strong>', format('error-emptylist')) else local cfg = getConfig() local tStylesLinks = {} for i, ts in ipairs(tStyles) do local link = string.format('[[:%s]]', ts) local sandboxLink = nil local tsTitle = mw.title.new(ts) if tsTitle and cfg['sandbox_title'] then local tsSandboxTitle = mw.title.new(string.format( '%s:%s/%s/%s', tsTitle.nsText, tsTitle.baseText, cfg['sandbox_title'], tsTitle.subpageText)) if tsSandboxTitle and tsSandboxTitle.exists then sandboxLink = format('sandboxlink', link, ':' .. tsSandboxTitle.prefixedText) end end tStylesLinks[i] = sandboxLink or link end local tStylesList = mList.makeList('bulleted', tStylesLinks) boxArgs.text = format( mw.title.getCurrentTitle():inNamespaces(828,829) and 'header-module' or 'header-template') .. '\n' .. tStylesList end return mMessageBox.main('mbox', boxArgs) end local function renderTrackingCategories(args, tStyles, titleObj) if yesno(args.nocat) then return '' end local cfg = getConfig() local cats = {} -- Error category if #tStyles < 1 and cfg['error_category'] then cats[#cats + 1] = cfg['error_category'] end -- TemplateStyles category titleObj = titleObj or mw.title.getCurrentTitle() if (titleObj.namespace == 10 or titleObj.namespace == 828) and not cfg['subpage_blacklist'][titleObj.subpageText] then local category = args.category or cfg['default_category'] if category then cats[#cats + 1] = category end if not yesno(args.noprotcat) and (cfg['protection_conflict_category'] or cfg['padlock_pattern']) then local currentProt = titleObj.protectionLevels["edit"] and titleObj.protectionLevels["edit"][1] or nil local addedLevelCat = false local addedPadlockCat = false for i, ts in ipairs(tStyles) do local tsTitleObj = mw.title.new(ts) local tsProt = tsTitleObj.protectionLevels["edit"] and tsTitleObj.protectionLevels["edit"][1] or nil if cfg['padlock_pattern'] and tsProt and not addedPadlockCat then local content = tsTitleObj:getContent() if not content:find(cfg['padlock_pattern']) then cats[#cats + 1] = cfg['missing_padlock_category'] addedPadlockCat = true end end if cfg['protection_conflict_category'] and currentProt and tsProt ~= currentProt and not addedLevelCat then currentProt = cfg['protection_hierarchy'][currentProt] or 0 tsProt = cfg['protection_hierarchy'][tsProt] or 0 if tsProt < currentProt then addedLevelCat = true cats[#cats + 1] = cfg['protection_conflict_category'] end end end end end for i, cat in ipairs(cats) do cats[i] = string.format('[[Category:%s]]', cat) end return table.concat(cats) end function p._main(args, cfg) local tStyles = mTableTools.compressSparseArray(args) local box = renderBox(tStyles) local trackingCategories = renderTrackingCategories(args, tStyles) return box .. trackingCategories end function p.main(frame) local origArgs = frame:getParent().args local args = {} for k, v in pairs(origArgs) do v = v:match('^%s*(.-)%s*$') if v ~= '' then args[k] = v end end return p._main(args) end return p 71ca57c37849f38e3c5ee30061bdae730963e48e Module:Uses TemplateStyles/config 828 89 170 169 2022-07-21T19:51:01Z Wikiricky 1 1 revision imported Scribunto text/plain local cfg = {} -- Don’t touch this line. -- Subpage blacklist: these subpages will not be categorized (except for the -- error category, which is always added if there is an error). -- For example “Template:Foo/doc” matches the `doc = true` rule, so it will have -- no categories. “Template:Foo” and “Template:Foo/documentation” match no rules, -- so they *will* have categories. All rules should be in the -- ['<subpage name>'] = true, -- format. cfg['subpage_blacklist'] = { ['doc'] = true, ['sandbox'] = true, ['sandbox2'] = true, ['testcases'] = true, } -- Sandbox title: if the stylesheet’s title is <template>/<stylesheet>.css, the -- stylesheet’s sandbox is expected to be at <template>/<sandbox_title>/<stylesheet>.css -- Set to nil to disable sandbox links. cfg['sandbox_title'] = 'sandbox' -- Error category: this category is added if the module call contains errors -- (e.g. no stylesheet listed). A category name without namespace, or nil -- to disable categorization (not recommended). cfg['error_category'] = 'Uses TemplateStyles templates with errors' -- Default category: this category is added if no custom category is specified -- in module/template call. A category name without namespace, or nil -- to disable categorization. cfg['default_category'] = 'Templates using TemplateStyles' -- Protection conflict category: this category is added if the protection level -- of any stylesheet is lower than the protection level of the template. A category name -- without namespace, or nil to disable categorization (not recommended). cfg['protection_conflict_category'] = 'Templates using TemplateStyles with a different protection level' -- Hierarchy of protection levels, used to determine whether one protection level is lower -- than another and thus should populate protection_conflict_category. No protection is treated as zero cfg['protection_hierarchy'] = { autoconfirmed = 1, extendedconfirmed = 2, templateeditor = 3, sysop = 4 } -- Padlock pattern: Lua pattern to search on protected stylesheets for, or nil -- to disable padlock check. cfg['padlock_pattern'] = '{{pp-' -- Missing padlock category: this category is added if a protected stylesheet -- doesn’t contain any padlock template (specified by the above Lua pattern). -- A category name without namespace (no nil allowed) if the pattern is not nil, -- unused (and thus may be nil) otherwise. cfg['missing_padlock_category'] = 'Templates using TemplateStyles without padlocks' return cfg -- Don’t touch this line. 58e7a37c44f6ea3f6b8af54a559d696cc7256493 Module:Yesno 828 90 172 171 2022-07-21T19:51:01Z Wikiricky 1 1 revision imported Scribunto text/plain -- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to the template {{yesno}}. return function (val, default) -- If your wiki uses non-ascii characters for any of "yes", "no", etc., you -- should replace "val:lower()" with "mw.ustring.lower(val)" in the -- following line. val = type(val) == 'string' and val:lower() or val if val == nil then return nil elseif val == true or val == 'yes' or val == 'y' or val == 'true' or val == 't' or val == 'on' or tonumber(val) == 1 then return true elseif val == false or val == 'no' or val == 'n' or val == 'false' or val == 'f' or val == 'off' or tonumber(val) == 0 then return false else return default end end f767643e7d12126d020d88d662a3dd057817b9dc Template:CSS3 multiple column layout 10 19 174 173 2022-07-21T19:52:20Z Wikiricky 1 1 revision imported wikitext text/x-wiki {| class="wikitable" style="float:right;clear:right;font-size:90%;margin:0 0 1em 1em;text-align:center;line-height:1.25em;" |+ style="line-height:1.25em;padding-bottom:0.25em;"| CSS3 multiple-column layout browser support |- ! Property !! [[Internet Explorer|Internet<br />Explorer]] !! [[Firefox]] !! [[Safari (web browser)|Safari]] !! [[Google Chrome|Chrome]] !! [[Opera (web browser)|Opera]] |- | column-width<br/>column-count | {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{yes|≥ 1.5<br />{{smaller|(2005)}}}} || {{yes|≥ 3<br />{{smaller|(2007)}}}} || {{yes|≥ 1<br />{{smaller|(2008)}}}} || {{yes|≥ 11.1<br />{{smaller|(2011)}}}} |- | columns | {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{yes|≥ 9<br />{{smaller|(2011)}}}} || {{yes|≥ 3<br />{{smaller|(2007)}}}} || {{yes|≥ 1<br />{{smaller|(2008)}}}} || {{yes|≥ 11.1<br />{{smaller|(2011)}}}} |- | break-before<br/>break-after<br/>break-inside | {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{maybe|≥ 65<br />{{smaller|(2019)}}}}<!-- no break-after --> || {{yes|≥ 10<br />{{smaller|(2016)}}}} || {{maybe|≥ 65<br />{{smaller|(2016)}}}}<!-- no break-after --> || {{maybe|≥ 15<br />{{smaller|(2013)}}}}<!-- no break-after --> |- |colspan="6" style="text-align:right"|{{navbar|CSS3 multiple column layout|mini=y}} |}<noinclude> {{Documentation}} </noinclude> c44910bab9b28d152d3b51049cbfed9bf55dcca5 Places where people live in Grenada 0 17 175 26 2022-07-21T21:13:09Z Wikiricky 1 added to carriaco section wikitext text/x-wiki This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes ==[[St.George,Grenada|St.George]]== *[[ANNANDALE,St.George,Grenada|ANNANDALE]] *[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]] *[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]] *[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]] *[[BAMBOO,St.George,Grenada|BAMBOO]] *[[BEAULIEU,St.George,Grenada|BEAULIEU]] *[[BELMONT,St.George,Grenada|BELMONT]] *[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]] *[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]] *[[BOCA,St.George,Grenada|BOCA]] *[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]] *[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]] *[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]] *[[BRIZAN,St.George,Grenada|BRIZAN]] *[[CAFE,St.George,Grenada|CAFE]] *[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]] *[[CALIVIGNY,St.George,Grenada|CALIVIGNY]] *[[CALLISTE,St.George,Grenada|CALLISTE]] *[[CARENAGE,St.George,Grenada|CARENAGE]] *[[CARRIERE,St.George,Grenada|CARRIERE]] *[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]] *[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]] *[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]] *[[CHERRY HILL,St.George,Grenada|CHERRY HILL]] *[[CHURCH STREET,St.George,Grenada|CHURCH STREET]] *[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]] *[[CLARKES COURT BAY,,St.George,Grenada|CLARKES COURT BAY,]] *[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]] *[[CONFER,St.George,Grenada|CONFER]] *[[CONSTANTINE,St.George,Grenada|CONSTANTINE]] *[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]] *[[COX ALLEY,St.George,Grenada|COX ALLEY]] *[[CREIGHTON,St.George,Grenada|CREIGHTON]] *[[CROSS STREET,St.George,Grenada|CROSS STREET]] *[[D'ARBEAU,St.George,Grenada|D'ARBEAU]] *[[DE FAUX,St.George,Grenada|DE FAUX]] *[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]] *[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]] *[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]] *[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]] *[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]] *[[FELIX PARK,St.George,Grenada|FELIX PARK]] *[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]] *[[FONTENOY,St.George,Grenada|FONTENOY]] *[[FORT JUEDY,St.George,Grenada|FORT JUEDY]] *[[FREQUENTE,St.George,Grenada|FREQUENTE]] *[[GOLF COURSE,St.George,Grenada|GOLF COURSE]] *[[GOOD HOPE,St.George,Grenada|GOOD HOPE]] *[[GORE STREET,St.George,Grenada|GORE STREET]] *[[GRAND ANSE,St.George,Grenada|GRAND ANSE]] *[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]] *[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]] *[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]] *[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]] *[[GRAND MAL,St.George,Grenada|GRAND MAL]] *[[GRANTON,St.George,Grenada|GRANTON]] *[[GREEN STREET,St.George,Grenada|GREEN STREET]] *[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]] *[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]] *[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]] *[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]] *[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]] *[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]] *[[HAPPY HILL,St.George,Grenada|HAPPY HILL]] *[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]] *[[HILLS ROAD,St.George,Grenada|HILLS ROAD]] *[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]] *[[HOPE VALE,St.George,Grenada|HOPE VALE]] *[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]] *[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]] *[[JUMBIE,St.George,Grenada|JUMBIE]] *[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]] *[[LA BORIE,St.George,Grenada|LA BORIE]] *[[LA MODE,St.George,Grenada|LA MODE]] *[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]] *[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]] *[[LONG GUTTER,St.George,Grenada|LONG GUTTER]] *[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]] *[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]] *[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]] *[[LUCAS STREET,St.George,Grenada|LUCAS STREET]] *[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]] *[[MARDIGRAS,St.George,Grenada|MARDIGRAS]] *[[MARIAN,St.George,Grenada|MARIAN]] *[[MARKET HILL,St.George,Grenada|MARKET HILL]] *[[MARRAST HILL,St.George,Grenada|MARRAST HILL]] *[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]] *[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]] *[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]] *[[MOLINIERE,St.George,Grenada|MOLINIERE]] *[[MONT TOUTE,St.George,Grenada|MONT TOUTE]] *[[MORNE DELICE,St.George,Grenada|MORNE DELICE]] *[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]] *[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]] *[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]] *[[MT. AIRY,St.George,Grenada|MT. AIRY]] *[[MT. GAY,St.George,Grenada|MT. GAY]] *[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]] *[[MT. MORITZ,St.George,Grenada|MT. MORITZ]] *[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]] *[[MT. RUSH,St.George,Grenada|MT. RUSH]] *[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]] *[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]] *[[OLD FORT,St.George,Grenada|OLD FORT]] *[[PADDOCK,St.George,Grenada|PADDOCK]] *[[PARADE,St.George,Grenada|PARADE]] *[[PARK LANE,St.George,Grenada|PARK LANE]] *[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]] *[[PETERSFIELD,St.George,Grenada|PETERSFIELD]] *[[POINT SALINES,St.George,Grenada|POINT SALINES]] *[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]] *[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]] *[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]] *[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]] *[[RIVER ROAD,St.George,Grenada|RIVER ROAD]] *[[ROEBUCK,St.George,Grenada|ROEBUCK]] *[[SANS SOUCI,St.George,Grenada|SANS SOUCI]] *[[SCOTT STREET,St.George,Grenada|SCOTT STREET]] *[[SHENDA,St.George,Grenada|SHENDA]] *[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]] *[[SNUG CORNER,St.George,Grenada|SNUG CORNER]] *[[SPRING GARDEN,St.George,Grenada|SPRING GARDEN]] *[[SPRINGS,St.George,Grenada|SPRINGS]] *[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]] *[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]] *[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]] *[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]] *[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]] *[[TEMPE,St.George,Grenada|TEMPE]] *[[THE BOCAS,St.George,Grenada|THE BOCAS]] *[[THE GREENS,St.George,Grenada|THE GREENS]] *[[THE LIMES,St.George,Grenada|THE LIMES]] *[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]] *[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]] *[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]] *[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]] *[[TRUE BLUE,St.George,Grenada|TRUE BLUE]] *[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]] *[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]] *[[TYRREL STREET,St.George,Grenada|TYRREL STREET]] *[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]] *[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]] *[[VENDOME,St.George,Grenada|VENDOME]] *[[WELCOME,St.George,Grenada|WELCOME]] *[[WHITE GUN,St.George,Grenada|WHITE GUN]] *[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]] *[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]] *[[WILLIS,St.George,Grenada|WILLIS]] *[[WOODLANDS,St.George,Grenada|WOODLANDS]] *[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]] *[[YOUNG STREET,St.George,Grenada|YOUNG STREET]] ==[[St.John,Grenada|St.John]]== *[[BACK STREET,St.John,Grenada|BACK STREET]] *[[BELVIDERE,St.John,Grenada|BELVIDERE]] *[[BLACK BAY,St.John,Grenada|BLACK BAY]] *[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]] *[[BROOKLYN,St.John,Grenada|BROOKLYN]] *[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]] *[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]] *[[CLOZIER,St.John,Grenada|CLOZIER]] *[[CONCORD,St.John,Grenada|CONCORD]] *[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]] *[[COTTON BAILY,St.John,Grenada|COTTON BAILY]] *[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]] *[[DEPONTHIEU STREET,St.John,Grenada|DEPONTHIEU STREET]] *[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]] *[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]] *[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]] *[[FLORIDA,St.John,Grenada|FLORIDA]] *[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]] *[[GRAND ROY,St.John,Grenada|GRAND ROY]] *[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]] *[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]] *[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]] *[[MARIGOT,St.John,Grenada|MARIGOT]] *[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]] *[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]] *[[MT. GRANBY,St.John,Grenada|MT. GRANBY]] *[[MT. NESBIT,St.John,Grenada|MT. NESBIT]] *[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]] *[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]] *[[PALMISTE,St.John,Grenada|PALMISTE]] *[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]] *[[RENNIE,St.John,Grenada|RENNIE]] *[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]] *[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]] *[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]] *[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]] *[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]] *[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]] *[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]] *[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]] *[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]] *[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]] *[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]] *[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]] *[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]] *[[WATERLOO,St.John,Grenada|WATERLOO]] ==[[St.David,Grenada|St.David]]== *[[APRES TOUTE,St.David,Grenada|APRES TOUTE]] *[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]] *[[BEATON,St.David,Grenada|BEATON]] *[[BELLE ISLE,St.David,Grenada|BELLE ISLE]] *[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]] *[[COALS GAPS,St.David,Grenada|COALS GAPS]] *[[CORINTH,St.David,Grenada|CORINTH]] *[[DUDMAR,St.David,Grenada|DUDMAR]] *[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]] *[[LA CALOHME,St.David,Grenada|LA CALOHME]] *[[LA CALOME, NEW WESTERHALL,St.David,Grenada|LA CALOME, NEW WESTERHALL]] *[[LA FEMME,St.David,Grenada|LA FEMME]] *[[LA FLORETTA,St.David,Grenada|LA FLORETTA]] *[[LA PASTORA,St.David,Grenada|LA PASTORA]] *[[LA SAGESSE,St.David,Grenada|LA SAGESSE]] *[[LA TANTE,St.David,Grenada|LA TANTE]] *[[MARLMOUNT,St.David,Grenada|MARLMOUNT]] *[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]] *[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]] *[[MINORCA,St.David,Grenada|MINORCA]] *[[MON REPOS,St.David,Grenada|MON REPOS]] *[[MT. AGNES,St.David,Grenada|MT. AGNES]] *[[MT. DISIRE,St.David,Grenada|MT. DISIRE]] *[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]] *[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]] *[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]] *[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]] *[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]] *[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]] *[[PETITE ETANG,St.David,Grenada|PETITE ETANG]] *[[POMME ROSE,St.David,Grenada|POMME ROSE]] *[[PROVIDENCE,St.David,Grenada|PROVIDENCE]] *[[RED GATE,St.David,Grenada|RED GATE]] *[[REDMUD,St.David,Grenada|REDMUD]] *[[REQUIN,St.David,Grenada|REQUIN]] *[[SLINGER STREET,St.David,Grenada|SLINGER STREET]] *[[SYRACUSE,St.David,Grenada|SYRACUSE]] *[[THEBAIDE,St.David,Grenada|THEBAIDE]] *[[UPPER LAURA,St.David,Grenada|UPPER LAURA]] *[[VINCENNES,St.David,Grenada|VINCENNES]] *[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]] *[[WINDSOR,St.David,Grenada|WINDSOR]] *[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]] ==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]== *[[BAYALEAU,Carriacou,Grenada|BAYALEAU]] *[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]] *[[BELAIR,Carriacou,Grenada|BELAIR]] *[[BELLE VUE,Carriacou,Grenada|BELLE VUE]] *[[BELMONT,Carriacou,Grenada|BELMONT]] *[[BOGLES,Carriacou,Grenada|BOGLES]] *[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]] *[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]] *[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]] *[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]] *[[DOVER,Carriacou,Grenada|DOVER]] *[[DUMFRIES,Carriacou,Grenada|DUMFRIES]] *[[GRAND BAY,Carriacou,Grenada|GRAND BAY]] *[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]] *[[HERMITAGE,Carriacou,Grenada|HERMITAGE]] *[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]] *[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]] *[[LAURISTON,Carriacou,Grenada|LAURISTON]] *[[LIMLAIR,Carriacou,Grenada|LIMLAIR]] *[[MELDRUM,Carriacou,Grenada|MELDRUM]] *[[MT. DISIRE,Carriacou,Grenada|MT. DISIRE]] *[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]] *[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]] *[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]] *[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]] *[[SIX ROADS,Carriacou,Grenada|SIX ROADS]] *[[TOP HILL,Carriacou,Grenada|TOP HILL]] *[[WINDWARD,Carriacou,Grenada|WINDWARD]] *[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]] ==[[St.Andrew,Grenada|St.Andrew]]== *[[MT. FANN,St. Andrew,Grenada|MT. FANN]] *[[ADELPHI,St.Andrew,Grenada|ADELPHI]] *[[AHOMA,St.Andrew,Grenada|AHOMA]] *[[BACK STRRET, TEMPE,St.Andrew,Grenada|BACK STRRET, TEMPE]] *[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]] *[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]] *[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]] *[[BELLE VUE SOUTH,St.Andrew,Grenada|BELLE VUE SOUTH]] *[[BELLEVUE,St.Andrew,Grenada|BELLEVUE]] *[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]] *[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]] *[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]] *[[BYELANDS,St.Andrew,Grenada|BYELANDS]] *[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]] *[[CARRIERE,St.Andrew,Grenada|CARRIERE]] *[[CARRUTH,St.Andrew,Grenada|CARRUTH]] *[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]] *[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]] *[[CODRONA,St.Andrew,Grenada|CODRONA]] *[[CONFERENCE,St.Andrew,Grenada|CONFERENCE]] *[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]] *[[CROCHU,St.Andrew,Grenada|CROCHU]] *[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]] *[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]] *[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]] *[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]] *[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]] *[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]] *[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]] *[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]] *[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]] *[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]] *[[HARFORD VILLAGE, LOWER,St.Andrew,Grenada|HARFORD VILLAGE, LOWER]] *[[HOPE,St.Andrew,Grenada|HOPE]] *[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]] *[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]] *[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]] *[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]] *[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]] *[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]] *[[MAHOUT,St.Andrew,Grenada|MAHOUT]] *[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]] *[[MARQUIS,St.Andrew,Grenada|MARQUIS]] *[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]] *[[MELDRUM,St.Andrew,Grenada|MELDRUM]] *[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]] *[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]] *[[MOYAH,St.Andrew,Grenada|MOYAH]] *[[MT ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]] *[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]] *[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]] *[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]] *[[MUNICH,St.Andrew,Grenada|MUNICH]] *[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]] *[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]] *[[PARACLETE,St.Andrew,Grenada|PARACLETE]] *[[PARADISE,St.Andrew,Grenada|PARADISE]] *[[PEARLS,St.Andrew,Grenada|PEARLS]] *[[PLATEAU,St.Andrew,Grenada|PLATEAU]] *[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]] *[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]] *[[RETREAT,St.Andrew,Grenada|RETREAT]] *[[RICHMOND,St.Andrew,Grenada|RICHMOND]] *[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]] *[[SABB,St.Andrew,Grenada|SABB]] *[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]] *[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]] *[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]] *[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]] *[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]] *[[SIMON,St.Andrew,Grenada|SIMON]] *[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]] *[[SOUBISE,St.Andrew,Grenada|SOUBISE]] *[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]] *[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]] *[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]] *[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]] *[[TIVOLI,St.Andrew,Grenada|TIVOLI]] *[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]] *[[UNION,St.Andrew,Grenada|UNION]] *[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]] *[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]] *[[WALKER,St.Andrew,Grenada|WALKER]] *[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]] ==[[St.Mark,Grenada|St.Mark]]== *[[BEVERLY LANE, MADEYS,St.Mark,Grenada|BEVERLY LANE, MADEYS]] *[[BOCAGE,St.Mark,Grenada|BOCAGE]] *[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]] *[[BONAIR,St.Mark,Grenada|BONAIR]] *[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]] *[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]] *[[COAST GUARD,St.Mark,Grenada|COAST GUARD]] *[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]] *[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]] *[[DARVEY,St.Mark,Grenada|DARVEY]] *[[DE VILLA,St.Mark,Grenada|DE VILLA]] *[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]] *[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]] *[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]] *[[DUQUESNE,St.Mark,Grenada|DUQUESNE]] *[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]] *[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]] *[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]] *[[HARMONY HALL,St.Mark,Grenada|HARMONY HALL]] *[[INDUSTRY,St.Mark,Grenada|INDUSTRY]] *[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]] *[[MARAN,St.Mark,Grenada|MARAN]] *[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]] *[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]] *[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]] *[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]] *[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]] *[[RESOURCE,St.Mark,Grenada|RESOURCE]] *[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]] *[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]] *[[SAMARITAN,St.Mark,Grenada|SAMARITAN]] *[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]] *[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]] *[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]] *[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]] *[[VICTORIA,St.Mark,Grenada|VICTORIA]] ==[[St.Patrick,Grenada|St.Patrick]]== *[[BATHWAY,St.Patrick,Grenada|BATHWAY]] *[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]] *[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]] *[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]] *[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]] *[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]] *[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]] *[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]] *[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]] *[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]] *[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]] *[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]] *[[LA TASTE,St.Patrick,Grenada|LA TASTE]] *[[LEVERA,St.Patrick,Grenada|LEVERA]] *[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]] *[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]] *[[MARLI,St.Patrick,Grenada|MARLI]] *[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]] *[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]] *[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]] *[[MT. RICH,St.Patrick,Grenada|MT. RICH]] *[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]] *[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]] *[[PLAINS,St.Patrick,Grenada|PLAINS]] *[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]] *[[PROSPECT,St.Patrick,Grenada|PROSPECT]] *[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]] *[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]] *[[RED MUD,St.Patrick,Grenada|RED MUD]] *[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]] *[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]] *[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]] *[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]] *[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]] *[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]] == Uncategorized== *[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]] *[[AFRICA,,Grenada|AFRICA]] *[[APSLEY HILL,,Grenada|APSLEY HILL]] *[[BAYROAD,,Grenada|BAYROAD]] *[[BLAIZE,,Grenada|BLAIZE]] *[[BLUGGO,,Grenada|BLUGGO]] *[[BYWAY,,Grenada|BYWAY]] *[[CASTIGNE,,Grenada|CASTIGNE]] *[[CEDARS,,Grenada|CEDARS]] *[[CELESTE,,Grenada|CELESTE]] *[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]] *[[CHADDEAU,,Grenada|CHADDEAU]] *[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]] *[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]] *[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]] *[[CONTENT,,Grenada|CONTENT]] *[[COOPER'S HILL,,Grenada|COOPER'S HILL]] *[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]] *[[DE SILLES,,Grenada|DE SILLES]] *[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]] *[[DOCTOR BELLE,,Grenada|DOCTOR BELLE]] *[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]] *[[DURRANT ROAD,,Grenada|DURRANT ROAD]] *[[FENCE,,Grenada|FENCE]] *[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]] *[[FIELD STREET,,Grenada|FIELD STREET]] *[[FOUNTAIN,,Grenada|FOUNTAIN]] *[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]] *[[GRANLETTE,,Grenada|GRANLETTE]] *[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]] *[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]] *[[GUPO,,Grenada|GUPO]] *[[HENRY STREET,,Grenada|HENRY STREET]] *[[HERMON,,Grenada|HERMON]] *[[JONES ROAD,,Grenada|JONES ROAD]] *[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]] *[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]] *[[LOWER LAURA,,Grenada|LOWER LAURA]] *[[LYDER,,Grenada|LYDER]] *[[MADEYS,,Grenada|MADEYS]] *[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]] *[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]] *[[MALIGNON,,Grenada|MALIGNON]] *[[MALONEY STREET,,Grenada|MALONEY STREET]] *[[MARINE VILLA,,Grenada|MARINE VILLA]] *[[MAUCHETTE,,Grenada|MAUCHETTE]] *[[MAULTY,,Grenada|MAULTY]] *[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]] *[[MEADOW,,Grenada|MEADOW]] *[[MELROSE,,Grenada|MELROSE]] *[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]] *[[MT. ANON,,Grenada|MT. ANON]] *[[MT. CUMMA,,Grenada|MT. CUMMA]] *[[MT. FELIX,,Grenada|MT. FELIX]] *[[MT. PLASIR,,Grenada|MT. PLASIR]] *[[MT. REUIL,,Grenada|MT. REUIL]] *[[MT. RODNEY,,Grenada|MT. RODNEY]] *[[MT. SEALEY,,Grenada|MT. SEALEY]] *[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]] *[[MUNRO STREET,,Grenada|MUNRO STREET]] *[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]] *[[NETTLE POINT,,Grenada|NETTLE POINT]] *[[NEW GARDENS,,Grenada|NEW GARDENS]] *[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]] *[[PARK ESTATE,,Grenada|PARK ESTATE]] *[[PENNY RETREAT,,Grenada|PENNY RETREAT]] *[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]] *[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]] *[[SCHOOL LANE,,Grenada|SCHOOL LANE]] *[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]] *[[ST. CYR,,Grenada|ST. CYR]] *[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]] *[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]] *[[TABOR,,Grenada|TABOR]] *[[TAYBAKAY,,Grenada|TAYBAKAY]] *[[TAYLOR,,Grenada|TAYLOR]] *[[TETMUND,,Grenada|TETMUND]] *[[THE SUMMIT,,Grenada|THE SUMMIT]] *[[THE VILLA,,Grenada|THE VILLA]] *[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]] *[[TOUS CONGO,,Grenada|TOUS CONGO]] *[[VINEYARD,,Grenada|VINEYARD]] *[[WALTHAM,,Grenada|WALTHAM]] *[[WOODFORD,,Grenada|WOODFORD]] d25c1e6042f42ba0fd381e7e251264f672c2ce40 176 175 2022-07-21T23:41:18Z Wikiricky 1 updated more places wikitext text/x-wiki This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes ==[[St.George,Grenada|St.George]]== *[[ANNANDALE,St.George,Grenada|ANNANDALE]] *[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]] *[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]] *[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]] *[[BEAULIEU,St.George,Grenada|BEAULIEU]] *[[BELMONT,St.George,Grenada|BELMONT]] *[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]] *[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]] *[[BOCA,St.George,Grenada|BOCA]] *[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]] *[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]] *[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]] *[[BRIZAN,St.George,Grenada|BRIZAN]] *[[CAFE,St.George,Grenada|CAFE]] *[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]] *[[CALIVIGNY,St.George,Grenada|CALIVIGNY]] *[[CALLISTE,St.George,Grenada|CALLISTE]] *[[CARENAGE,St.George,Grenada|CARENAGE]] *[[CARRIERE,St.George,Grenada|CARRIERE]] *[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]] *[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]] *[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]] *[[CHERRY HILL,St.George,Grenada|CHERRY HILL]] *[[CHURCH STREET,St.George,Grenada|CHURCH STREET]] *[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]] *[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]] *[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]] *[[CONFER,St.George,Grenada|CONFER]] *[[CONSTANTINE,St.George,Grenada|CONSTANTINE]] *[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]] *[[COX ALLEY,St.George,Grenada|COX ALLEY]] *[[CREIGHTON,St.George,Grenada|CREIGHTON]] *[[CROSS STREET,St.George,Grenada|CROSS STREET]] *[[D'ARBEAU,St.George,Grenada|D'ARBEAU]] *[[DE FAUX,St.George,Grenada|DE FAUX]] *[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]] *[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]] *[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]] *[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]] *[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]] *[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]] *[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]] *[[FONTENOY,St.George,Grenada|FONTENOY]] *[[FORT JUEDY,St.George,Grenada|FORT JUEDY]] *[[FREQUENTE,St.George,Grenada|FREQUENTE]] *[[GOLF COURSE,St.George,Grenada|GOLF COURSE]] *[[GOOD HOPE,St.George,Grenada|GOOD HOPE]] *[[GORE STREET,St.George,Grenada|GORE STREET]] *[[GRAND ANSE,St.George,Grenada|GRAND ANSE]] *[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]] *[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]] *[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]] *[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]] *[[GRAND MAL,St.George,Grenada|GRAND MAL]] *[[GRANTON,St.George,Grenada|GRANTON]] *[[GREEN STREET,St.George,Grenada|GREEN STREET]] *[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]] *[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]] *[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]] *[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]] *[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]] *[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]] *[[HAPPY HILL,St.George,Grenada|HAPPY HILL]] *[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]] *[[HILLS ROAD,St.George,Grenada|HILLS ROAD]] *[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]] *[[HOPE VALE,St.George,Grenada|HOPE VALE]] *[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]] *[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]] *[[JUMBIE,St.George,Grenada|JUMBIE]] *[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]] *[[LA BORIE,St.George,Grenada|LA BORIE]] *[[LA MODE,St.George,Grenada|LA MODE]] *[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]] *[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]] *[[LONG GUTTER,St.George,Grenada|LONG GUTTER]] *[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]] *[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]] *[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]] *[[LUCAS STREET,St.George,Grenada|LUCAS STREET]] *[[MALONEY STREET,St.George,Grenada|MALONEY STREET]] *[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]] *[[MARIAN,St.George,Grenada|MARIAN]] *[[MARKET HILL,St.George,Grenada|MARKET HILL]] *[[MARRAST HILL,St.George,Grenada|MARRAST HILL]] *[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]] *[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]] *[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]] *[[MOLINIERE,St.George,Grenada|MOLINIERE]] *[[MONT TOUTE,St.George,Grenada|MONT TOUTE]] *[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]] *[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]] *[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]] *[[MT. AIRY,St.George,Grenada|MT. AIRY]] *[[MT. GAY,St.George,Grenada|MT. GAY]] *[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]] *[[MT. MORITZ,St.George,Grenada|MT. MORITZ]] *[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]] *[[MT. RUSH,St.George,Grenada|MT. RUSH]] *[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]] *[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]] *[[OLD FORT,St.George,Grenada|OLD FORT]] *[[PADDOCK,St.George,Grenada|PADDOCK]] *[[PARADE,St.George,Grenada|PARADE]] *[[PARK LANE,St.George,Grenada|PARK LANE]] *[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]] *[[PETERSFIELD,St.George,Grenada|PETERSFIELD]] *[[POINT SALINES,St.George,Grenada|POINT SALINES]] *[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]] *[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]] *[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]] *[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]] *[[RIVER ROAD,St.George,Grenada|RIVER ROAD]] *[[ROEBUCK,St.George,Grenada|ROEBUCK]] *[[SANS SOUCI,St.George,Grenada|SANS SOUCI]] *[[SCOTT STREET,St.George,Grenada|SCOTT STREET]] *[[SHENDA,St.George,Grenada|SHENDA]] *[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]] *[[SNUG CORNER,St.George,Grenada|SNUG CORNER]] *[[SPRINGS,St.George,Grenada|SPRINGS]] *[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]] *[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]] *[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]] *[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]] *[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]] *[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]] *[[TEMPE,St.George,Grenada|TEMPE]] *[[TETMUND,St.George,Grenada|TETMUND]] *[[THE BOCAS,St.George,Grenada|THE BOCAS]] *[[THE GREENS,St.George,Grenada|THE GREENS]] *[[THE LIMES,St.George,Grenada|THE LIMES]] *[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]] *[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]] *[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]] *[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]] *[[TRUE BLUE,St.George,Grenada|TRUE BLUE]] *[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]] *[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]] *[[TYRREL STREET,St.George,Grenada|TYRREL STREET]] *[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]] *[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]] *[[VENDOME,St.George,Grenada|VENDOME]] *[[WELCOME,St.George,Grenada|WELCOME]] *[[WHITE GUN,St.George,Grenada|WHITE GUN]] *[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]] *[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]] *[[WILLIS,St.George,Grenada|WILLIS]] *[[WOODLANDS,St.George,Grenada|WOODLANDS]] *[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]] *[[YOUNG STREET,St.George,Grenada|YOUNG STREET]] ==[[St.John,Grenada|St.John]]== *[[BACK STREET,St.John,Grenada|BACK STREET]] *[[BELVIDERE,St.John,Grenada|BELVIDERE]] *[[BLACK BAY,St.John,Grenada|BLACK BAY]] *[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]] *[[BROOKLYN,St.John,Grenada|BROOKLYN]] *[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]] *[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]] *[[CLOZIER,St.John,Grenada|CLOZIER]] *[[CONCORD,St.John,Grenada|CONCORD]] *[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]] *[[COTTON BAILY,St.John,Grenada|COTTON BAILY]] *[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]] *[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]] *[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]] *[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]] *[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]] *[[FLORIDA,St.John,Grenada|FLORIDA]] *[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]] *[[GRAND ROY,St.John,Grenada|GRAND ROY]] *[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]] *[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]] *[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]] *[[MARIGOT,St.John,Grenada|MARIGOT]] *[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]] *[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]] *[[MT. GRANBY,St.John,Grenada|MT. GRANBY]] *[[MT. NESBIT,St.John,Grenada|MT. NESBIT]] *[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]] *[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]] *[[PALMISTE,St.John,Grenada|PALMISTE]] *[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]] *[[RENNIE,St.John,Grenada|RENNIE]] *[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]] *[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]] *[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]] *[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]] *[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]] *[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]] *[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]] *[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]] *[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]] *[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]] *[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]] *[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]] *[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]] *[[WATERLOO,St.John,Grenada|WATERLOO]] *[[WOODFORD,St.John,Grenada|WOODFORD]] ==[[St.David,Grenada|St.David]]== *[[APRES TOUTE,St.David,Grenada|APRES TOUTE]] *[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]] *[[BEATON,St.David,Grenada|BEATON]] *[[BELLE ISLE,St.David,Grenada|BELLE ISLE]] *[[BELLE VUE,St.David,Grenada|BELLE VUE]] *[[BOCAGE,St.David,Grenada|BOCAGE]] *[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]] *[[COALS GAPS,St.David,Grenada|COALS GAPS]] *[[CONTENT,St.David,Grenada|CONTENT]] *[[CORINTH,St.David,Grenada|CORINTH]] *[[DUDMAR,St.David,Grenada|DUDMAR]] *[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]] *[[HARMONY HALL,St.David,Grenada|HARMONY HALL]] *[[LA CALOHME,St.David,Grenada|LA CALOHME]] *[[LA FEMME,St.David,Grenada|LA FEMME]] *[[LA FLORETTA,St.David,Grenada|LA FLORETTA]] *[[LA PASTORA,St.David,Grenada|LA PASTORA]] *[[LA SAGESSE,St.David,Grenada|LA SAGESSE]] *[[LA TANTE,St.David,Grenada|LA TANTE]] *[[MARLMOUNT,St.David,Grenada|MARLMOUNT]] *[[MARDIGRAS,St.David,Grenada|MARDIGRAS]] *[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]] *[[MAULTY,St.David,Grenada|MAULTY]] *[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]] *[[MINORCA,St.David,Grenada|MINORCA]] *[[MORNE DELICE,St.David,Grenada|MORNE DELICE]] *[[MON REPOS,St.David,Grenada|MON REPOS]] *[[MT. AGNES,St.David,Grenada|MT. AGNES]] *[[MT. DISIRE,St.David,Grenada|MT. DISIRE]] *[[MT. ROSE,St.David,Grenada|MT. ROSE]] *[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]] *[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]] *[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]] *[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]] *[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]] *[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]] *[[PETITE ETANG,St.David,Grenada|PETITE ETANG]] *[[POMME ROSE,St.David,Grenada|POMME ROSE]] *[[RED GATE,St.David,Grenada|RED GATE]] *[[REDMUD,St.David,Grenada|REDMUD]] *[[REQUIN,St.David,Grenada|REQUIN]] *[[SLINGER STREET,St.David,Grenada|SLINGER STREET]] *[[SYRACUSE,St.David,Grenada|SYRACUSE]] *[[THEBAIDE,St.David,Grenada|THEBAIDE]] *[[TABOR,St.David,Grenada|TABOR]] *[[UPPER LAURA,St.David,Grenada|UPPER LAURA]] *[[VINCENNES,St.David,Grenada|VINCENNES]] *[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]] *[[WINDSOR,St.David,Grenada|WINDSOR]] *[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]] ==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]== *[[BAYALEAU,Carriacou,Grenada|BAYALEAU]] *[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]] *[[BELAIR,Carriacou,Grenada|BELAIR]] *[[BELLE VUE,Carriacou,Grenada|BELLE VUE]] *[[BELMONT,Carriacou,Grenada|BELMONT]] *[[BOGLES,Carriacou,Grenada|BOGLES]] *[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]] *[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]] *[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]] *[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]] *[[DOVER,Carriacou,Grenada|DOVER]] *[[DUMFRIES,Carriacou,Grenada|DUMFRIES]] *[[GRAND BAY,Carriacou,Grenada|GRAND BAY]] *[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]] *[[HERMITAGE,Carriacou,Grenada|HERMITAGE]] *[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]] *[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]] *[[LAURISTON,Carriacou,Grenada|LAURISTON]] *[[LIMLAIR,Carriacou,Grenada|LIMLAIR]] *[[MELDRUM,Carriacou,Grenada|MELDRUM]] *[[MT. DISIRE,Carriacou,Grenada|MT. DISIRE]] *[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]] *[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]] *[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]] *[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]] *[[SIX ROADS,Carriacou,Grenada|SIX ROADS]] *[[TOP HILL,Carriacou,Grenada|TOP HILL]] *[[WINDWARD,Carriacou,Grenada|WINDWARD]] *[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]] ==[[St.Andrew,Grenada|St.Andrew]]== *[[MT. FANN,St. Andrew,Grenada|MT. FANN]] *[[ADELPHI,St.Andrew,Grenada|ADELPHI]] *[[AHOMA,St.Andrew,Grenada|AHOMA]] *[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]] *[[BAYROAD,St.Andrew,Grenada|BAYROAD]] *[[BLAIZE,St.Andrew,Grenada|BLAIZE]] *[[BAMBOO,St.Andrew,Grenada|BAMBOO]] *[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]] *[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]] *[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]] *[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]] *[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]] *[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]] *[[BYELANDS,St.Andrew,Grenada|BYELANDS]] *[[CAFE,St.Andrew,Grenada|CAFE]] *[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]] *[[CARRIERE,St.Andrew,Grenada|CARRIERE]] *[[CARRUTH,St.Andrew,Grenada|CARRUTH]] *[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]] *[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]] *[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]] *[[CODRONA,St.Andrew,Grenada|CODRONA]] *[[CONFERENCE,St.Andrew,Grenada|CONFERENCE]] *[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]] *[[CROCHU,St.Andrew,Grenada|CROCHU]] *[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]] *[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]] *[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]] *[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]] *[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]] *[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]] *[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]] *[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]] *[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]] *[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]] *[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]] *[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]] *[[GUPO,St.Andrew,Grenada|GUPO]] *[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]] *[[HERMON,St.Andrew,Grenada|HERMON]] *[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]] *[[HOPE,St.Andrew,Grenada|HOPE]] *[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]] *[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]] *[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]] *[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]] *[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]] *[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]] *[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]] *[[MAHOUT,St.Andrew,Grenada|MAHOUT]] *[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]] *[[MARQUIS,St.Andrew,Grenada|MARQUIS]] *[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]] *[[MEADOW,St.Andrew,Grenada|MEADOW]] *[[MELDRUM,St.Andrew,Grenada|MELDRUM]] *[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]] *[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]] *[[MOYAH,St.Andrew,Grenada|MOYAH]] *[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]] *[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]] *[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]] *[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]] *[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]] *[[MUNICH,St.Andrew,Grenada|MUNICH]] *[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]] *[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]] *[[PARACLETE,St.Andrew,Grenada|PARACLETE]] *[[PARADISE,St.Andrew,Grenada|PARADISE]] *[[PEARLS,St.Andrew,Grenada|PEARLS]] *[[PLATEAU,St.Andrew,Grenada|PLATEAU]] *[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]] *[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]] *[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]] *[[RETREAT,St.Andrew,Grenada|RETREAT]] *[[RICHMOND,St.Andrew,Grenada|RICHMOND]] *[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]] *[[SABB,St.Andrew,Grenada|SABB]] *[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]] *[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]] *[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]] *[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]] *[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]] *[[SIMON,St.Andrew,Grenada|SIMON]] *[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]] *[[SOUBISE,St.Andrew,Grenada|SOUBISE]] *[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]] *[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]] *[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]] *[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]] *[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]] *[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]] *[[TIVOLI,St.Andrew,Grenada|TIVOLI]] *[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]] *[[UNION,St.Andrew,Grenada|UNION]] *[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]] *[[THE VILLA,St.Andrew,Grenada|THE VILLA]] *[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]] *[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]] *[[WALKER,St.Andrew,Grenada|WALKER]] *[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]] ==[[St.Mark,Grenada|St.Mark]]== *[[BOCAGE,St.Mark,Grenada|BOCAGE]] *[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]] *[[BONAIR,St.Mark,Grenada|BONAIR]] *[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]] *[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]] *[[COAST GUARD,St.Mark,Grenada|COAST GUARD]] *[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]] *[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]] *[[DARVEY,St.Mark,Grenada|DARVEY]] *[[DE VILLA,St.Mark,Grenada|DE VILLA]] *[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]] *[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]] *[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]] *[[DUQUESNE,St.Mark,Grenada|DUQUESNE]] *[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]] *[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]] *[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]] *[[INDUSTRY,St.Mark,Grenada|INDUSTRY]] *[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]] *[[MARAN,St.Mark,Grenada|MARAN]] *[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]] *[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]] *[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]] *[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]] *[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]] *[[RESOURCE,St.Mark,Grenada|RESOURCE]] *[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]] *[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]] *[[SAMARITAN,St.Mark,Grenada|SAMARITAN]] *[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]] *[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]] *[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]] *[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]] *[[VICTORIA,St.Mark,Grenada|VICTORIA]] *[[WALTHAM,St.Mark,Grenada|WALTHAM]] ==[[St.Patrick,Grenada|St.Patrick]]== *[[BATHWAY,St.Patrick,Grenada|BATHWAY]] *[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]] *[[CEDARS,St.Patrick,Grenada|CEDARS]] *[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]] *[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]] *[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]] *[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]] *[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]] *[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]] *[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]] *[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]] *[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]] *[[LA TASTE,St.Patrick,Grenada|LA TASTE]] *[[LEVERA,St.Patrick,Grenada|LEVERA]] *[[MADEYS,St.Patrick,Grenada|MADEYS]] *[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]] *[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]] *[[MARLI,St.Patrick,Grenada|MARLI]] *[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]] *[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]] *[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]] *[[MT. RICH,St.Patrick,Grenada|MT. RICH]] *[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]] *[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]] *[[PLAINS,St.Patrick,Grenada|PLAINS]] *[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]] *[[PROSPECT,St.Patrick,Grenada|PROSPECT]] *[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]] *[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]] *[[RED MUD,St.Patrick,Grenada|RED MUD]] *[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]] *[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]] *[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]] *[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]] *[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]] *[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]] == Uncategorized== *[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]] *[[AFRICA,,Grenada|AFRICA]] *[[APSLEY HILL,,Grenada|APSLEY HILL]] *[[BLUGGO,,Grenada|BLUGGO]] *[[BYWAY,,Grenada|BYWAY]] *[[CELESTE,,Grenada|CELESTE]] *[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]] *[[CHADDEAU,,Grenada|CHADDEAU]] *[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]] *[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]] *[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]] *[[COOPER'S HILL,,Grenada|COOPER'S HILL]] *[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]] *[[DE SILLES,,Grenada|DE SILLES]] *[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]] *[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]] *[[DURRANT ROAD,,Grenada|DURRANT ROAD]] *[[FENCE,,Grenada|FENCE]] *[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]] *[[FIELD STREET,,Grenada|FIELD STREET]] *[[FOUNTAIN,,Grenada|FOUNTAIN]] *[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]] *[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]] *[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]] *[[HENRY STREET,,Grenada|HENRY STREET]] *[[JONES ROAD,,Grenada|JONES ROAD]] *[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]] *[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]] *[[LOWER LAURA,,Grenada|LOWER LAURA]] *[[LYDER,,Grenada|LYDER]] *[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]] *[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]] *[[MALIGNON,,Grenada|MALIGNON]] *[[MARINE VILLA,,Grenada|MARINE VILLA]] *[[MAUCHETTE,,Grenada|MAUCHETTE]] *[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]] *[[MELROSE,,Grenada|MELROSE]] *[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]] *[[MT. ANON,,Grenada|MT. ANON]] *[[MT. CUMMA,,Grenada|MT. CUMMA]] *[[MT. FELIX,,Grenada|MT. FELIX]] *[[MT. PLASIR,,Grenada|MT. PLASIR]] *[[MT. REUIL,,Grenada|MT. REUIL]] *[[MT. RODNEY,,Grenada|MT. RODNEY]] *[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]] *[[MUNRO STREET,,Grenada|MUNRO STREET]] *[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]] *[[NETTLE POINT,,Grenada|NETTLE POINT]] *[[NEW GARDENS,,Grenada|NEW GARDENS]] *[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]] *[[PARK ESTATE,,Grenada|PARK ESTATE]] *[[PENNY RETREAT,,Grenada|PENNY RETREAT]] *[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]] *[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]] *[[SCHOOL LANE,,Grenada|SCHOOL LANE]] *[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]] *[[ST. CYR,,Grenada|ST. CYR]] *[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]] *[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]] *[[TAYBAKAY,,Grenada|TAYBAKAY]] *[[TAYLOR,,Grenada|TAYLOR]] *[[THE SUMMIT,,Grenada|THE SUMMIT]] *[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]] *[[VINEYARD,,Grenada|VINEYARD]] b56da3e40e854ddd9ebd9a9a25a15dd601c7627a 177 176 2022-07-21T23:56:45Z Wikiricky 1 /* Carriacou and Petite Martinique */ added reference wikitext text/x-wiki This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes ==[[St.George,Grenada|St.George]]== *[[ANNANDALE,St.George,Grenada|ANNANDALE]] *[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]] *[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]] *[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]] *[[BEAULIEU,St.George,Grenada|BEAULIEU]] *[[BELMONT,St.George,Grenada|BELMONT]] *[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]] *[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]] *[[BOCA,St.George,Grenada|BOCA]] *[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]] *[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]] *[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]] *[[BRIZAN,St.George,Grenada|BRIZAN]] *[[CAFE,St.George,Grenada|CAFE]] *[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]] *[[CALIVIGNY,St.George,Grenada|CALIVIGNY]] *[[CALLISTE,St.George,Grenada|CALLISTE]] *[[CARENAGE,St.George,Grenada|CARENAGE]] *[[CARRIERE,St.George,Grenada|CARRIERE]] *[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]] *[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]] *[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]] *[[CHERRY HILL,St.George,Grenada|CHERRY HILL]] *[[CHURCH STREET,St.George,Grenada|CHURCH STREET]] *[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]] *[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]] *[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]] *[[CONFER,St.George,Grenada|CONFER]] *[[CONSTANTINE,St.George,Grenada|CONSTANTINE]] *[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]] *[[COX ALLEY,St.George,Grenada|COX ALLEY]] *[[CREIGHTON,St.George,Grenada|CREIGHTON]] *[[CROSS STREET,St.George,Grenada|CROSS STREET]] *[[D'ARBEAU,St.George,Grenada|D'ARBEAU]] *[[DE FAUX,St.George,Grenada|DE FAUX]] *[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]] *[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]] *[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]] *[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]] *[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]] *[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]] *[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]] *[[FONTENOY,St.George,Grenada|FONTENOY]] *[[FORT JUEDY,St.George,Grenada|FORT JUEDY]] *[[FREQUENTE,St.George,Grenada|FREQUENTE]] *[[GOLF COURSE,St.George,Grenada|GOLF COURSE]] *[[GOOD HOPE,St.George,Grenada|GOOD HOPE]] *[[GORE STREET,St.George,Grenada|GORE STREET]] *[[GRAND ANSE,St.George,Grenada|GRAND ANSE]] *[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]] *[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]] *[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]] *[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]] *[[GRAND MAL,St.George,Grenada|GRAND MAL]] *[[GRANTON,St.George,Grenada|GRANTON]] *[[GREEN STREET,St.George,Grenada|GREEN STREET]] *[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]] *[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]] *[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]] *[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]] *[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]] *[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]] *[[HAPPY HILL,St.George,Grenada|HAPPY HILL]] *[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]] *[[HILLS ROAD,St.George,Grenada|HILLS ROAD]] *[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]] *[[HOPE VALE,St.George,Grenada|HOPE VALE]] *[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]] *[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]] *[[JUMBIE,St.George,Grenada|JUMBIE]] *[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]] *[[LA BORIE,St.George,Grenada|LA BORIE]] *[[LA MODE,St.George,Grenada|LA MODE]] *[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]] *[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]] *[[LONG GUTTER,St.George,Grenada|LONG GUTTER]] *[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]] *[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]] *[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]] *[[LUCAS STREET,St.George,Grenada|LUCAS STREET]] *[[MALONEY STREET,St.George,Grenada|MALONEY STREET]] *[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]] *[[MARIAN,St.George,Grenada|MARIAN]] *[[MARKET HILL,St.George,Grenada|MARKET HILL]] *[[MARRAST HILL,St.George,Grenada|MARRAST HILL]] *[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]] *[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]] *[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]] *[[MOLINIERE,St.George,Grenada|MOLINIERE]] *[[MONT TOUTE,St.George,Grenada|MONT TOUTE]] *[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]] *[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]] *[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]] *[[MT. AIRY,St.George,Grenada|MT. AIRY]] *[[MT. GAY,St.George,Grenada|MT. GAY]] *[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]] *[[MT. MORITZ,St.George,Grenada|MT. MORITZ]] *[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]] *[[MT. RUSH,St.George,Grenada|MT. RUSH]] *[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]] *[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]] *[[OLD FORT,St.George,Grenada|OLD FORT]] *[[PADDOCK,St.George,Grenada|PADDOCK]] *[[PARADE,St.George,Grenada|PARADE]] *[[PARK LANE,St.George,Grenada|PARK LANE]] *[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]] *[[PETERSFIELD,St.George,Grenada|PETERSFIELD]] *[[POINT SALINES,St.George,Grenada|POINT SALINES]] *[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]] *[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]] *[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]] *[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]] *[[RIVER ROAD,St.George,Grenada|RIVER ROAD]] *[[ROEBUCK,St.George,Grenada|ROEBUCK]] *[[SANS SOUCI,St.George,Grenada|SANS SOUCI]] *[[SCOTT STREET,St.George,Grenada|SCOTT STREET]] *[[SHENDA,St.George,Grenada|SHENDA]] *[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]] *[[SNUG CORNER,St.George,Grenada|SNUG CORNER]] *[[SPRINGS,St.George,Grenada|SPRINGS]] *[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]] *[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]] *[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]] *[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]] *[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]] *[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]] *[[TEMPE,St.George,Grenada|TEMPE]] *[[TETMUND,St.George,Grenada|TETMUND]] *[[THE BOCAS,St.George,Grenada|THE BOCAS]] *[[THE GREENS,St.George,Grenada|THE GREENS]] *[[THE LIMES,St.George,Grenada|THE LIMES]] *[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]] *[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]] *[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]] *[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]] *[[TRUE BLUE,St.George,Grenada|TRUE BLUE]] *[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]] *[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]] *[[TYRREL STREET,St.George,Grenada|TYRREL STREET]] *[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]] *[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]] *[[VENDOME,St.George,Grenada|VENDOME]] *[[WELCOME,St.George,Grenada|WELCOME]] *[[WHITE GUN,St.George,Grenada|WHITE GUN]] *[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]] *[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]] *[[WILLIS,St.George,Grenada|WILLIS]] *[[WOODLANDS,St.George,Grenada|WOODLANDS]] *[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]] *[[YOUNG STREET,St.George,Grenada|YOUNG STREET]] ==[[St.John,Grenada|St.John]]== *[[BACK STREET,St.John,Grenada|BACK STREET]] *[[BELVIDERE,St.John,Grenada|BELVIDERE]] *[[BLACK BAY,St.John,Grenada|BLACK BAY]] *[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]] *[[BROOKLYN,St.John,Grenada|BROOKLYN]] *[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]] *[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]] *[[CLOZIER,St.John,Grenada|CLOZIER]] *[[CONCORD,St.John,Grenada|CONCORD]] *[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]] *[[COTTON BAILY,St.John,Grenada|COTTON BAILY]] *[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]] *[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]] *[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]] *[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]] *[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]] *[[FLORIDA,St.John,Grenada|FLORIDA]] *[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]] *[[GRAND ROY,St.John,Grenada|GRAND ROY]] *[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]] *[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]] *[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]] *[[MARIGOT,St.John,Grenada|MARIGOT]] *[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]] *[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]] *[[MT. GRANBY,St.John,Grenada|MT. GRANBY]] *[[MT. NESBIT,St.John,Grenada|MT. NESBIT]] *[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]] *[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]] *[[PALMISTE,St.John,Grenada|PALMISTE]] *[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]] *[[RENNIE,St.John,Grenada|RENNIE]] *[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]] *[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]] *[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]] *[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]] *[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]] *[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]] *[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]] *[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]] *[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]] *[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]] *[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]] *[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]] *[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]] *[[WATERLOO,St.John,Grenada|WATERLOO]] *[[WOODFORD,St.John,Grenada|WOODFORD]] ==[[St.David,Grenada|St.David]]== *[[APRES TOUTE,St.David,Grenada|APRES TOUTE]] *[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]] *[[BEATON,St.David,Grenada|BEATON]] *[[BELLE ISLE,St.David,Grenada|BELLE ISLE]] *[[BELLE VUE,St.David,Grenada|BELLE VUE]] *[[BOCAGE,St.David,Grenada|BOCAGE]] *[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]] *[[COALS GAPS,St.David,Grenada|COALS GAPS]] *[[CONTENT,St.David,Grenada|CONTENT]] *[[CORINTH,St.David,Grenada|CORINTH]] *[[DUDMAR,St.David,Grenada|DUDMAR]] *[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]] *[[HARMONY HALL,St.David,Grenada|HARMONY HALL]] *[[LA CALOHME,St.David,Grenada|LA CALOHME]] *[[LA FEMME,St.David,Grenada|LA FEMME]] *[[LA FLORETTA,St.David,Grenada|LA FLORETTA]] *[[LA PASTORA,St.David,Grenada|LA PASTORA]] *[[LA SAGESSE,St.David,Grenada|LA SAGESSE]] *[[LA TANTE,St.David,Grenada|LA TANTE]] *[[MARLMOUNT,St.David,Grenada|MARLMOUNT]] *[[MARDIGRAS,St.David,Grenada|MARDIGRAS]] *[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]] *[[MAULTY,St.David,Grenada|MAULTY]] *[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]] *[[MINORCA,St.David,Grenada|MINORCA]] *[[MORNE DELICE,St.David,Grenada|MORNE DELICE]] *[[MON REPOS,St.David,Grenada|MON REPOS]] *[[MT. AGNES,St.David,Grenada|MT. AGNES]] *[[MT. DISIRE,St.David,Grenada|MT. DISIRE]] *[[MT. ROSE,St.David,Grenada|MT. ROSE]] *[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]] *[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]] *[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]] *[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]] *[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]] *[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]] *[[PETITE ETANG,St.David,Grenada|PETITE ETANG]] *[[POMME ROSE,St.David,Grenada|POMME ROSE]] *[[RED GATE,St.David,Grenada|RED GATE]] *[[REDMUD,St.David,Grenada|REDMUD]] *[[REQUIN,St.David,Grenada|REQUIN]] *[[SLINGER STREET,St.David,Grenada|SLINGER STREET]] *[[SYRACUSE,St.David,Grenada|SYRACUSE]] *[[THEBAIDE,St.David,Grenada|THEBAIDE]] *[[TABOR,St.David,Grenada|TABOR]] *[[UPPER LAURA,St.David,Grenada|UPPER LAURA]] *[[VINCENNES,St.David,Grenada|VINCENNES]] *[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]] *[[WINDSOR,St.David,Grenada|WINDSOR]] *[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]] ==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]== *[[BAYALEAU,Carriacou,Grenada|BAYALEAU]] *[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]] *[[BELAIR,Carriacou,Grenada|BELAIR]] *[[BELLE VUE,Carriacou,Grenada|BELLE VUE]] *[[BELMONT,Carriacou,Grenada|BELMONT]] *[[BOGLES,Carriacou,Grenada|BOGLES]] *[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]] *[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]] *[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1385]</ref> *[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]] *[[DOVER,Carriacou,Grenada|DOVER]] *[[DUMFRIES,Carriacou,Grenada|DUMFRIES]] *[[GRAND BAY,Carriacou,Grenada|GRAND BAY]] *[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]] *[[HERMITAGE,Carriacou,Grenada|HERMITAGE]] *[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]] *[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]] *[[LAURISTON,Carriacou,Grenada|LAURISTON]] *[[LIMLAIR,Carriacou,Grenada|LIMLAIR]] *[[MELDRUM,Carriacou,Grenada|MELDRUM]] *[[MT. DISIRE,Carriacou,Grenada|MT. DISIRE]] *[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]] *[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]] *[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]] *[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]] *[[SIX ROADS,Carriacou,Grenada|SIX ROADS]] *[[TOP HILL,Carriacou,Grenada|TOP HILL]] *[[WINDWARD,Carriacou,Grenada|WINDWARD]] *[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]] ==[[St.Andrew,Grenada|St.Andrew]]== *[[MT. FANN,St. Andrew,Grenada|MT. FANN]] *[[ADELPHI,St.Andrew,Grenada|ADELPHI]] *[[AHOMA,St.Andrew,Grenada|AHOMA]] *[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]] *[[BAYROAD,St.Andrew,Grenada|BAYROAD]] *[[BLAIZE,St.Andrew,Grenada|BLAIZE]] *[[BAMBOO,St.Andrew,Grenada|BAMBOO]] *[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]] *[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]] *[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]] *[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]] *[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]] *[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]] *[[BYELANDS,St.Andrew,Grenada|BYELANDS]] *[[CAFE,St.Andrew,Grenada|CAFE]] *[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]] *[[CARRIERE,St.Andrew,Grenada|CARRIERE]] *[[CARRUTH,St.Andrew,Grenada|CARRUTH]] *[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]] *[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]] *[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]] *[[CODRONA,St.Andrew,Grenada|CODRONA]] *[[CONFERENCE,St.Andrew,Grenada|CONFERENCE]] *[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]] *[[CROCHU,St.Andrew,Grenada|CROCHU]] *[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]] *[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]] *[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]] *[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]] *[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]] *[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]] *[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]] *[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]] *[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]] *[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]] *[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]] *[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]] *[[GUPO,St.Andrew,Grenada|GUPO]] *[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]] *[[HERMON,St.Andrew,Grenada|HERMON]] *[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]] *[[HOPE,St.Andrew,Grenada|HOPE]] *[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]] *[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]] *[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]] *[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]] *[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]] *[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]] *[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]] *[[MAHOUT,St.Andrew,Grenada|MAHOUT]] *[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]] *[[MARQUIS,St.Andrew,Grenada|MARQUIS]] *[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]] *[[MEADOW,St.Andrew,Grenada|MEADOW]] *[[MELDRUM,St.Andrew,Grenada|MELDRUM]] *[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]] *[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]] *[[MOYAH,St.Andrew,Grenada|MOYAH]] *[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]] *[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]] *[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]] *[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]] *[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]] *[[MUNICH,St.Andrew,Grenada|MUNICH]] *[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]] *[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]] *[[PARACLETE,St.Andrew,Grenada|PARACLETE]] *[[PARADISE,St.Andrew,Grenada|PARADISE]] *[[PEARLS,St.Andrew,Grenada|PEARLS]] *[[PLATEAU,St.Andrew,Grenada|PLATEAU]] *[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]] *[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]] *[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]] *[[RETREAT,St.Andrew,Grenada|RETREAT]] *[[RICHMOND,St.Andrew,Grenada|RICHMOND]] *[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]] *[[SABB,St.Andrew,Grenada|SABB]] *[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]] *[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]] *[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]] *[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]] *[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]] *[[SIMON,St.Andrew,Grenada|SIMON]] *[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]] *[[SOUBISE,St.Andrew,Grenada|SOUBISE]] *[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]] *[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]] *[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]] *[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]] *[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]] *[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]] *[[TIVOLI,St.Andrew,Grenada|TIVOLI]] *[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]] *[[UNION,St.Andrew,Grenada|UNION]] *[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]] *[[THE VILLA,St.Andrew,Grenada|THE VILLA]] *[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]] *[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]] *[[WALKER,St.Andrew,Grenada|WALKER]] *[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]] ==[[St.Mark,Grenada|St.Mark]]== *[[BOCAGE,St.Mark,Grenada|BOCAGE]] *[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]] *[[BONAIR,St.Mark,Grenada|BONAIR]] *[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]] *[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]] *[[COAST GUARD,St.Mark,Grenada|COAST GUARD]] *[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]] *[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]] *[[DARVEY,St.Mark,Grenada|DARVEY]] *[[DE VILLA,St.Mark,Grenada|DE VILLA]] *[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]] *[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]] *[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]] *[[DUQUESNE,St.Mark,Grenada|DUQUESNE]] *[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]] *[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]] *[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]] *[[INDUSTRY,St.Mark,Grenada|INDUSTRY]] *[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]] *[[MARAN,St.Mark,Grenada|MARAN]] *[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]] *[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]] *[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]] *[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]] *[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]] *[[RESOURCE,St.Mark,Grenada|RESOURCE]] *[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]] *[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]] *[[SAMARITAN,St.Mark,Grenada|SAMARITAN]] *[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]] *[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]] *[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]] *[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]] *[[VICTORIA,St.Mark,Grenada|VICTORIA]] *[[WALTHAM,St.Mark,Grenada|WALTHAM]] ==[[St.Patrick,Grenada|St.Patrick]]== *[[BATHWAY,St.Patrick,Grenada|BATHWAY]] *[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]] *[[CEDARS,St.Patrick,Grenada|CEDARS]] *[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]] *[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]] *[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]] *[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]] *[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]] *[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]] *[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]] *[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]] *[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]] *[[LA TASTE,St.Patrick,Grenada|LA TASTE]] *[[LEVERA,St.Patrick,Grenada|LEVERA]] *[[MADEYS,St.Patrick,Grenada|MADEYS]] *[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]] *[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]] *[[MARLI,St.Patrick,Grenada|MARLI]] *[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]] *[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]] *[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]] *[[MT. RICH,St.Patrick,Grenada|MT. RICH]] *[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]] *[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]] *[[PLAINS,St.Patrick,Grenada|PLAINS]] *[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]] *[[PROSPECT,St.Patrick,Grenada|PROSPECT]] *[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]] *[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]] *[[RED MUD,St.Patrick,Grenada|RED MUD]] *[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]] *[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]] *[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]] *[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]] *[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]] *[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]] == Uncategorized== *[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]] *[[AFRICA,,Grenada|AFRICA]] *[[APSLEY HILL,,Grenada|APSLEY HILL]] *[[BLUGGO,,Grenada|BLUGGO]] *[[BYWAY,,Grenada|BYWAY]] *[[CELESTE,,Grenada|CELESTE]] *[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]] *[[CHADDEAU,,Grenada|CHADDEAU]] *[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]] *[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]] *[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]] *[[COOPER'S HILL,,Grenada|COOPER'S HILL]] *[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]] *[[DE SILLES,,Grenada|DE SILLES]] *[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]] *[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]] *[[DURRANT ROAD,,Grenada|DURRANT ROAD]] *[[FENCE,,Grenada|FENCE]] *[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]] *[[FIELD STREET,,Grenada|FIELD STREET]] *[[FOUNTAIN,,Grenada|FOUNTAIN]] *[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]] *[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]] *[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]] *[[HENRY STREET,,Grenada|HENRY STREET]] *[[JONES ROAD,,Grenada|JONES ROAD]] *[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]] *[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]] *[[LOWER LAURA,,Grenada|LOWER LAURA]] *[[LYDER,,Grenada|LYDER]] *[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]] *[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]] *[[MALIGNON,,Grenada|MALIGNON]] *[[MARINE VILLA,,Grenada|MARINE VILLA]] *[[MAUCHETTE,,Grenada|MAUCHETTE]] *[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]] *[[MELROSE,,Grenada|MELROSE]] *[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]] *[[MT. ANON,,Grenada|MT. ANON]] *[[MT. CUMMA,,Grenada|MT. CUMMA]] *[[MT. FELIX,,Grenada|MT. FELIX]] *[[MT. PLASIR,,Grenada|MT. PLASIR]] *[[MT. REUIL,,Grenada|MT. REUIL]] *[[MT. RODNEY,,Grenada|MT. RODNEY]] *[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]] *[[MUNRO STREET,,Grenada|MUNRO STREET]] *[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]] *[[NETTLE POINT,,Grenada|NETTLE POINT]] *[[NEW GARDENS,,Grenada|NEW GARDENS]] *[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]] *[[PARK ESTATE,,Grenada|PARK ESTATE]] *[[PENNY RETREAT,,Grenada|PENNY RETREAT]] *[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]] *[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]] *[[SCHOOL LANE,,Grenada|SCHOOL LANE]] *[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]] *[[ST. CYR,,Grenada|ST. CYR]] *[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]] *[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]] *[[TAYBAKAY,,Grenada|TAYBAKAY]] *[[TAYLOR,,Grenada|TAYLOR]] *[[THE SUMMIT,,Grenada|THE SUMMIT]] *[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]] *[[VINEYARD,,Grenada|VINEYARD]] 8ad0e7b6f3d81d13d2ff3c2e3b9dd40492d62809 178 177 2022-07-22T16:26:34Z Wikiricky 1 /* St.George */ added citations wikitext text/x-wiki This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes ==[[St.George,Grenada|St.George]]== *[[ANNANDALE,St.George,Grenada|ANNANDALE]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/100 Annandale Estate - Legacies of British Slavery - UCL]</ref> *[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]] *[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]] *[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]] *[[BEAULIEU,St.George,Grenada|BEAULIEU]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1320 <nowiki>Beaulieu [ Grenada | St George ] - UCL</nowiki>]</ref> *[[BELMONT,St.George,Grenada|BELMONT]] *[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]] *[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]] *[[BOCA,St.George,Grenada|BOCA]] *[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]] *[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]] *[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]] *[[BRIZAN,St.George,Grenada|BRIZAN]] *[[CAFE,St.George,Grenada|CAFE]] *[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]] *[[CALIVIGNY,St.George,Grenada|CALIVIGNY]] *[[CALLISTE,St.George,Grenada|CALLISTE]] *[[CARENAGE,St.George,Grenada|CARENAGE]] *[[CARRIERE,St.George,Grenada|CARRIERE]] *[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]] *[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]] *[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]] *[[CHERRY HILL,St.George,Grenada|CHERRY HILL]] *[[CHURCH STREET,St.George,Grenada|CHURCH STREET]] *[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]] *[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]] *[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]] *[[CONFER,St.George,Grenada|CONFER]] *[[CONSTANTINE,St.George,Grenada|CONSTANTINE]] *[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]] *[[COX ALLEY,St.George,Grenada|COX ALLEY]] *[[CREIGHTON,St.George,Grenada|CREIGHTON]] *[[CROSS STREET,St.George,Grenada|CROSS STREET]] *[[D'ARBEAU,St.George,Grenada|D'ARBEAU]] *[[DE FAUX,St.George,Grenada|DE FAUX]] *[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]] *[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]] *[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]] *[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]] *[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]] *[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]] *[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]] *[[FONTENOY,St.George,Grenada|FONTENOY]] *[[FORT JUEDY,St.George,Grenada|FORT JUEDY]] *[[FREQUENTE,St.George,Grenada|FREQUENTE]] *[[GOLF COURSE,St.George,Grenada|GOLF COURSE]] *[[GOOD HOPE,St.George,Grenada|GOOD HOPE]] *[[GORE STREET,St.George,Grenada|GORE STREET]] *[[GRAND ANSE,St.George,Grenada|GRAND ANSE]] *[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]] *[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]] *[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]] *[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]] *[[GRAND MAL,St.George,Grenada|GRAND MAL]] *[[GRANTON,St.George,Grenada|GRANTON]] *[[GREEN STREET,St.George,Grenada|GREEN STREET]] *[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]] *[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]] *[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]] *[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]] *[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]] *[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]] *[[HAPPY HILL,St.George,Grenada|HAPPY HILL]] *[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]] *[[HILLS ROAD,St.George,Grenada|HILLS ROAD]] *[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]] *[[HOPE VALE,St.George,Grenada|HOPE VALE]] *[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]] *[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]] *[[JUMBIE,St.George,Grenada|JUMBIE]] *[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]] *[[LA BORIE,St.George,Grenada|LA BORIE]] *[[LA MODE,St.George,Grenada|LA MODE]] *[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]] *[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]] *[[LONG GUTTER,St.George,Grenada|LONG GUTTER]] *[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]] *[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]] *[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]] *[[LUCAS STREET,St.George,Grenada|LUCAS STREET]] *[[MALONEY STREET,St.George,Grenada|MALONEY STREET]] *[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]] *[[MARIAN,St.George,Grenada|MARIAN]] *[[MARKET HILL,St.George,Grenada|MARKET HILL]] *[[MARRAST HILL,St.George,Grenada|MARRAST HILL]] *[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]] *[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]] *[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]] *[[MOLINIERE,St.George,Grenada|MOLINIERE]] *[[MONT TOUTE,St.George,Grenada|MONT TOUTE]] *[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]] *[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]] *[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]] *[[MT. AIRY,St.George,Grenada|MT. AIRY]] *[[MT. GAY,St.George,Grenada|MT. GAY]] *[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]] *[[MT. MORITZ,St.George,Grenada|MT. MORITZ]] *[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]] *[[MT. RUSH,St.George,Grenada|MT. RUSH]] *[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]] *[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]] *[[OLD FORT,St.George,Grenada|OLD FORT]] *[[PADDOCK,St.George,Grenada|PADDOCK]] *[[PARADE,St.George,Grenada|PARADE]] *[[PARK LANE,St.George,Grenada|PARK LANE]] *[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]] *[[PETERSFIELD,St.George,Grenada|PETERSFIELD]] *[[POINT SALINES,St.George,Grenada|POINT SALINES]] *[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]] *[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]] *[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]] *[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]] *[[RIVER ROAD,St.George,Grenada|RIVER ROAD]] *[[ROEBUCK,St.George,Grenada|ROEBUCK]] *[[SANS SOUCI,St.George,Grenada|SANS SOUCI]] *[[SCOTT STREET,St.George,Grenada|SCOTT STREET]] *[[SHENDA,St.George,Grenada|SHENDA]] *[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]] *[[SNUG CORNER,St.George,Grenada|SNUG CORNER]] *[[SPRINGS,St.George,Grenada|SPRINGS]] *[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]] *[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]] *[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]] *[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]] *[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]] *[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]] *[[TEMPE,St.George,Grenada|TEMPE]] *[[TETMUND,St.George,Grenada|TETMUND]] *[[THE BOCAS,St.George,Grenada|THE BOCAS]] *[[THE GREENS,St.George,Grenada|THE GREENS]] *[[THE LIMES,St.George,Grenada|THE LIMES]] *[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]] *[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]] *[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]] *[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]] *[[TRUE BLUE,St.George,Grenada|TRUE BLUE]] *[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]] *[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]] *[[TYRREL STREET,St.George,Grenada|TYRREL STREET]] *[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]] *[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]] *[[VENDOME,St.George,Grenada|VENDOME]] *[[WELCOME,St.George,Grenada|WELCOME]] *[[WHITE GUN,St.George,Grenada|WHITE GUN]] *[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]] *[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]] *[[WILLIS,St.George,Grenada|WILLIS]] *[[WOODLANDS,St.George,Grenada|WOODLANDS]] *[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]] *[[YOUNG STREET,St.George,Grenada|YOUNG STREET]] ==[[St.John,Grenada|St.John]]== *[[BACK STREET,St.John,Grenada|BACK STREET]] *[[BELVIDERE,St.John,Grenada|BELVIDERE]] *[[BLACK BAY,St.John,Grenada|BLACK BAY]] *[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]] *[[BROOKLYN,St.John,Grenada|BROOKLYN]] *[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]] *[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]] *[[CLOZIER,St.John,Grenada|CLOZIER]] *[[CONCORD,St.John,Grenada|CONCORD]] *[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]] *[[COTTON BAILY,St.John,Grenada|COTTON BAILY]] *[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]] *[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]] *[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]] *[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]] *[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]] *[[FLORIDA,St.John,Grenada|FLORIDA]] *[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]] *[[GRAND ROY,St.John,Grenada|GRAND ROY]] *[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]] *[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]] *[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]] *[[MARIGOT,St.John,Grenada|MARIGOT]] *[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]] *[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]] *[[MT. GRANBY,St.John,Grenada|MT. GRANBY]] *[[MT. NESBIT,St.John,Grenada|MT. NESBIT]] *[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]] *[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]] *[[PALMISTE,St.John,Grenada|PALMISTE]] *[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]] *[[RENNIE,St.John,Grenada|RENNIE]] *[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]] *[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]] *[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]] *[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]] *[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]] *[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]] *[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]] *[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]] *[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]] *[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]] *[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]] *[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]] *[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]] *[[WATERLOO,St.John,Grenada|WATERLOO]] *[[WOODFORD,St.John,Grenada|WOODFORD]] ==[[St.David,Grenada|St.David]]== *[[APRES TOUTE,St.David,Grenada|APRES TOUTE]] *[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]] *[[BEATON,St.David,Grenada|BEATON]] *[[BELLE ISLE,St.David,Grenada|BELLE ISLE]] *[[BELLE VUE,St.David,Grenada|BELLE VUE]] *[[BOCAGE,St.David,Grenada|BOCAGE]] *[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]] *[[COALS GAPS,St.David,Grenada|COALS GAPS]] *[[CONTENT,St.David,Grenada|CONTENT]] *[[CORINTH,St.David,Grenada|CORINTH]] *[[DUDMAR,St.David,Grenada|DUDMAR]] *[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]] *[[HARMONY HALL,St.David,Grenada|HARMONY HALL]] *[[LA CALOHME,St.David,Grenada|LA CALOHME]] *[[LA FEMME,St.David,Grenada|LA FEMME]] *[[LA FLORETTA,St.David,Grenada|LA FLORETTA]] *[[LA PASTORA,St.David,Grenada|LA PASTORA]] *[[LA SAGESSE,St.David,Grenada|LA SAGESSE]] *[[LA TANTE,St.David,Grenada|LA TANTE]] *[[MARLMOUNT,St.David,Grenada|MARLMOUNT]] *[[MARDIGRAS,St.David,Grenada|MARDIGRAS]] *[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]] *[[MAULTY,St.David,Grenada|MAULTY]] *[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]] *[[MINORCA,St.David,Grenada|MINORCA]] *[[MORNE DELICE,St.David,Grenada|MORNE DELICE]] *[[MON REPOS,St.David,Grenada|MON REPOS]] *[[MT. AGNES,St.David,Grenada|MT. AGNES]] *[[MT. DISIRE,St.David,Grenada|MT. DISIRE]] *[[MT. ROSE,St.David,Grenada|MT. ROSE]] *[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]] *[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]] *[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]] *[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]] *[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]] *[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]] *[[PETITE ETANG,St.David,Grenada|PETITE ETANG]] *[[POMME ROSE,St.David,Grenada|POMME ROSE]] *[[RED GATE,St.David,Grenada|RED GATE]] *[[REDMUD,St.David,Grenada|REDMUD]] *[[REQUIN,St.David,Grenada|REQUIN]] *[[SLINGER STREET,St.David,Grenada|SLINGER STREET]] *[[SYRACUSE,St.David,Grenada|SYRACUSE]] *[[THEBAIDE,St.David,Grenada|THEBAIDE]] *[[TABOR,St.David,Grenada|TABOR]] *[[UPPER LAURA,St.David,Grenada|UPPER LAURA]] *[[VINCENNES,St.David,Grenada|VINCENNES]] *[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]] *[[WINDSOR,St.David,Grenada|WINDSOR]] *[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]] ==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]== *[[BAYALEAU,Carriacou,Grenada|BAYALEAU]] *[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]] *[[BELAIR,Carriacou,Grenada|BELAIR]] *[[BELLE VUE,Carriacou,Grenada|BELLE VUE]] *[[BELMONT,Carriacou,Grenada|BELMONT]] *[[BOGLES,Carriacou,Grenada|BOGLES]] *[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]] *[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]] *[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1385]</ref> *[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]] *[[DOVER,Carriacou,Grenada|DOVER]] *[[DUMFRIES,Carriacou,Grenada|DUMFRIES]] *[[GRAND BAY,Carriacou,Grenada|GRAND BAY]] *[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]] *[[HERMITAGE,Carriacou,Grenada|HERMITAGE]] *[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]] *[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]] *[[LAURISTON,Carriacou,Grenada|LAURISTON]] *[[LIMLAIR,Carriacou,Grenada|LIMLAIR]] *[[MELDRUM,Carriacou,Grenada|MELDRUM]] *[[MT. DISIRE,Carriacou,Grenada|MT. DISIRE]] *[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]] *[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]] *[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]] *[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]] *[[SIX ROADS,Carriacou,Grenada|SIX ROADS]] *[[TOP HILL,Carriacou,Grenada|TOP HILL]] *[[WINDWARD,Carriacou,Grenada|WINDWARD]] *[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]] ==[[St.Andrew,Grenada|St.Andrew]]== *[[MT. FANN,St. Andrew,Grenada|MT. FANN]] *[[ADELPHI,St.Andrew,Grenada|ADELPHI]] *[[AHOMA,St.Andrew,Grenada|AHOMA]] *[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]] *[[BAYROAD,St.Andrew,Grenada|BAYROAD]] *[[BLAIZE,St.Andrew,Grenada|BLAIZE]] *[[BAMBOO,St.Andrew,Grenada|BAMBOO]] *[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]] *[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]] *[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]] *[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]] *[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]] *[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]] *[[BYELANDS,St.Andrew,Grenada|BYELANDS]] *[[CAFE,St.Andrew,Grenada|CAFE]] *[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]] *[[CARRIERE,St.Andrew,Grenada|CARRIERE]] *[[CARRUTH,St.Andrew,Grenada|CARRUTH]] *[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]] *[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]] *[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]] *[[CODRONA,St.Andrew,Grenada|CODRONA]] *[[CONFERENCE,St.Andrew,Grenada|CONFERENCE]] *[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]] *[[CROCHU,St.Andrew,Grenada|CROCHU]] *[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]] *[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]] *[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]] *[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]] *[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]] *[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]] *[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]] *[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]] *[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]] *[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]] *[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]] *[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]] *[[GUPO,St.Andrew,Grenada|GUPO]] *[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]] *[[HERMON,St.Andrew,Grenada|HERMON]] *[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]] *[[HOPE,St.Andrew,Grenada|HOPE]] *[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]] *[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]] *[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]] *[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]] *[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]] *[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]] *[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]] *[[MAHOUT,St.Andrew,Grenada|MAHOUT]] *[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]] *[[MARQUIS,St.Andrew,Grenada|MARQUIS]] *[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]] *[[MEADOW,St.Andrew,Grenada|MEADOW]] *[[MELDRUM,St.Andrew,Grenada|MELDRUM]] *[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]] *[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]] *[[MOYAH,St.Andrew,Grenada|MOYAH]] *[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]] *[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]] *[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]] *[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]] *[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]] *[[MUNICH,St.Andrew,Grenada|MUNICH]] *[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]] *[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]] *[[PARACLETE,St.Andrew,Grenada|PARACLETE]] *[[PARADISE,St.Andrew,Grenada|PARADISE]] *[[PEARLS,St.Andrew,Grenada|PEARLS]] *[[PLATEAU,St.Andrew,Grenada|PLATEAU]] *[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]] *[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]] *[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]] *[[RETREAT,St.Andrew,Grenada|RETREAT]] *[[RICHMOND,St.Andrew,Grenada|RICHMOND]] *[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]] *[[SABB,St.Andrew,Grenada|SABB]] *[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]] *[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]] *[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]] *[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]] *[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]] *[[SIMON,St.Andrew,Grenada|SIMON]] *[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]] *[[SOUBISE,St.Andrew,Grenada|SOUBISE]] *[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]] *[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]] *[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]] *[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]] *[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]] *[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]] *[[TIVOLI,St.Andrew,Grenada|TIVOLI]] *[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]] *[[UNION,St.Andrew,Grenada|UNION]] *[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]] *[[THE VILLA,St.Andrew,Grenada|THE VILLA]] *[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]] *[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]] *[[WALKER,St.Andrew,Grenada|WALKER]] *[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]] ==[[St.Mark,Grenada|St.Mark]]== *[[BOCAGE,St.Mark,Grenada|BOCAGE]] *[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]] *[[BONAIR,St.Mark,Grenada|BONAIR]] *[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]] *[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]] *[[COAST GUARD,St.Mark,Grenada|COAST GUARD]] *[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]] *[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]] *[[DARVEY,St.Mark,Grenada|DARVEY]] *[[DE VILLA,St.Mark,Grenada|DE VILLA]] *[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]] *[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]] *[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]] *[[DUQUESNE,St.Mark,Grenada|DUQUESNE]] *[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]] *[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]] *[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]] *[[INDUSTRY,St.Mark,Grenada|INDUSTRY]] *[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]] *[[MARAN,St.Mark,Grenada|MARAN]] *[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]] *[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]] *[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]] *[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]] *[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]] *[[RESOURCE,St.Mark,Grenada|RESOURCE]] *[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]] *[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]] *[[SAMARITAN,St.Mark,Grenada|SAMARITAN]] *[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]] *[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]] *[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]] *[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]] *[[VICTORIA,St.Mark,Grenada|VICTORIA]] *[[WALTHAM,St.Mark,Grenada|WALTHAM]] ==[[St.Patrick,Grenada|St.Patrick]]== *[[BATHWAY,St.Patrick,Grenada|BATHWAY]] *[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]] *[[CEDARS,St.Patrick,Grenada|CEDARS]] *[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]] *[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]] *[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]] *[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]] *[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]] *[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]] *[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]] *[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]] *[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]] *[[LA TASTE,St.Patrick,Grenada|LA TASTE]] *[[LEVERA,St.Patrick,Grenada|LEVERA]] *[[MADEYS,St.Patrick,Grenada|MADEYS]] *[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]] *[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]] *[[MARLI,St.Patrick,Grenada|MARLI]] *[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]] *[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]] *[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]] *[[MT. RICH,St.Patrick,Grenada|MT. RICH]] *[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]] *[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]] *[[PLAINS,St.Patrick,Grenada|PLAINS]] *[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]] *[[PROSPECT,St.Patrick,Grenada|PROSPECT]] *[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]] *[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]] *[[RED MUD,St.Patrick,Grenada|RED MUD]] *[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]] *[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]] *[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]] *[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]] *[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]] *[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]] == Uncategorized== *[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]] *[[AFRICA,,Grenada|AFRICA]] *[[APSLEY HILL,,Grenada|APSLEY HILL]] *[[BLUGGO,,Grenada|BLUGGO]] *[[BYWAY,,Grenada|BYWAY]] *[[CELESTE,,Grenada|CELESTE]] *[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]] *[[CHADDEAU,,Grenada|CHADDEAU]] *[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]] *[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]] *[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]] *[[COOPER'S HILL,,Grenada|COOPER'S HILL]] *[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]] *[[DE SILLES,,Grenada|DE SILLES]] *[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]] *[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]] *[[DURRANT ROAD,,Grenada|DURRANT ROAD]] *[[FENCE,,Grenada|FENCE]] *[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]] *[[FIELD STREET,,Grenada|FIELD STREET]] *[[FOUNTAIN,,Grenada|FOUNTAIN]] *[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]] *[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]] *[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]] *[[HENRY STREET,,Grenada|HENRY STREET]] *[[JONES ROAD,,Grenada|JONES ROAD]] *[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]] *[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]] *[[LOWER LAURA,,Grenada|LOWER LAURA]] *[[LYDER,,Grenada|LYDER]] *[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]] *[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]] *[[MALIGNON,,Grenada|MALIGNON]] *[[MARINE VILLA,,Grenada|MARINE VILLA]] *[[MAUCHETTE,,Grenada|MAUCHETTE]] *[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]] *[[MELROSE,,Grenada|MELROSE]] *[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]] *[[MT. ANON,,Grenada|MT. ANON]] *[[MT. CUMMA,,Grenada|MT. CUMMA]] *[[MT. FELIX,,Grenada|MT. FELIX]] *[[MT. PLASIR,,Grenada|MT. PLASIR]] *[[MT. REUIL,,Grenada|MT. REUIL]] *[[MT. RODNEY,,Grenada|MT. RODNEY]] *[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]] *[[MUNRO STREET,,Grenada|MUNRO STREET]] *[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]] *[[NETTLE POINT,,Grenada|NETTLE POINT]] *[[NEW GARDENS,,Grenada|NEW GARDENS]] *[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]] *[[PARK ESTATE,,Grenada|PARK ESTATE]] *[[PENNY RETREAT,,Grenada|PENNY RETREAT]] *[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]] *[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]] *[[SCHOOL LANE,,Grenada|SCHOOL LANE]] *[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]] *[[ST. CYR,,Grenada|ST. CYR]] *[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]] *[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]] *[[TAYBAKAY,,Grenada|TAYBAKAY]] *[[TAYLOR,,Grenada|TAYLOR]] *[[THE SUMMIT,,Grenada|THE SUMMIT]] *[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]] *[[VINEYARD,,Grenada|VINEYARD]] 403053ad4a1a16e83d4c9618e37ddec798fe3d4a 179 178 2022-07-22T16:42:27Z Wikiricky 1 /* St.George */ added citations wikitext text/x-wiki This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes ==[[St.George,Grenada|St.George]]== *[[ANNANDALE,St.George,Grenada|ANNANDALE]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/100 Annandale Estate - Legacies of British Slavery - UCL]</ref> *[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]] *[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]] *[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]] *[[BEAULIEU,St.George,Grenada|BEAULIEU]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1320 <nowiki>Beaulieu [ Grenada | St George ] - UCL</nowiki>]</ref> *[[BELMONT,St.George,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1290</ref> *[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]] *[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]] *[[BOCA,St.George,Grenada|BOCA]] *[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]] *[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]] *[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]] *[[BRIZAN,St.George,Grenada|BRIZAN]] *[[CAFE,St.George,Grenada|CAFE]] *[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]] *[[CALIVIGNY,St.George,Grenada|CALIVIGNY]] *[[CALLISTE,St.George,Grenada|CALLISTE]] *[[CARENAGE,St.George,Grenada|CARENAGE]] *[[CARRIERE,St.George,Grenada|CARRIERE]] *[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]] *[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]] *[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]] *[[CHERRY HILL,St.George,Grenada|CHERRY HILL]] *[[CHURCH STREET,St.George,Grenada|CHURCH STREET]] *[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]] *[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]] *[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]] *[[CONFER,St.George,Grenada|CONFER]] *[[CONSTANTINE,St.George,Grenada|CONSTANTINE]] *[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]] *[[COX ALLEY,St.George,Grenada|COX ALLEY]] *[[CREIGHTON,St.George,Grenada|CREIGHTON]] *[[CROSS STREET,St.George,Grenada|CROSS STREET]] *[[D'ARBEAU,St.George,Grenada|D'ARBEAU]] *[[DE FAUX,St.George,Grenada|DE FAUX]] *[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]] *[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]] *[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]] *[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]] *[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]] *[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]] *[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]] *[[FONTENOY,St.George,Grenada|FONTENOY]] *[[FORT JUEDY,St.George,Grenada|FORT JUEDY]] *[[FREQUENTE,St.George,Grenada|FREQUENTE]] *[[GOLF COURSE,St.George,Grenada|GOLF COURSE]] *[[GOOD HOPE,St.George,Grenada|GOOD HOPE]] *[[GORE STREET,St.George,Grenada|GORE STREET]] *[[GRAND ANSE,St.George,Grenada|GRAND ANSE]] *[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]] *[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]] *[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]] *[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]] *[[GRAND MAL,St.George,Grenada|GRAND MAL]] *[[GRANTON,St.George,Grenada|GRANTON]] *[[GREEN STREET,St.George,Grenada|GREEN STREET]] *[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]] *[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]] *[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]] *[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]] *[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]] *[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]] *[[HAPPY HILL,St.George,Grenada|HAPPY HILL]] *[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]] *[[HILLS ROAD,St.George,Grenada|HILLS ROAD]] *[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]] *[[HOPE VALE,St.George,Grenada|HOPE VALE]] *[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]] *[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]] *[[JUMBIE,St.George,Grenada|JUMBIE]] *[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]] *[[LA BORIE,St.George,Grenada|LA BORIE]] *[[LA MODE,St.George,Grenada|LA MODE]] *[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]] *[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]] *[[LONG GUTTER,St.George,Grenada|LONG GUTTER]] *[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]] *[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]] *[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]] *[[LUCAS STREET,St.George,Grenada|LUCAS STREET]] *[[MALONEY STREET,St.George,Grenada|MALONEY STREET]] *[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]] *[[MARIAN,St.George,Grenada|MARIAN]] *[[MARKET HILL,St.George,Grenada|MARKET HILL]] *[[MARRAST HILL,St.George,Grenada|MARRAST HILL]] *[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]] *[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]] *[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]] *[[MOLINIERE,St.George,Grenada|MOLINIERE]] *[[MONT TOUTE,St.George,Grenada|MONT TOUTE]] *[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]] *[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]] *[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]] *[[MT. AIRY,St.George,Grenada|MT. AIRY]] *[[MT. GAY,St.George,Grenada|MT. GAY]] *[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]] *[[MT. MORITZ,St.George,Grenada|MT. MORITZ]] *[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]] *[[MT. RUSH,St.George,Grenada|MT. RUSH]] *[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]] *[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]] *[[OLD FORT,St.George,Grenada|OLD FORT]] *[[PADDOCK,St.George,Grenada|PADDOCK]] *[[PARADE,St.George,Grenada|PARADE]] *[[PARK LANE,St.George,Grenada|PARK LANE]] *[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]] *[[PETERSFIELD,St.George,Grenada|PETERSFIELD]] *[[POINT SALINES,St.George,Grenada|POINT SALINES]] *[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]] *[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]] *[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]] *[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]] *[[RIVER ROAD,St.George,Grenada|RIVER ROAD]] *[[ROEBUCK,St.George,Grenada|ROEBUCK]] *[[SANS SOUCI,St.George,Grenada|SANS SOUCI]] *[[SCOTT STREET,St.George,Grenada|SCOTT STREET]] *[[SHENDA,St.George,Grenada|SHENDA]] *[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]] *[[SNUG CORNER,St.George,Grenada|SNUG CORNER]] *[[SPRINGS,St.George,Grenada|SPRINGS]] *[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]] *[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]] *[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]] *[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]] *[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]] *[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]] *[[TEMPE,St.George,Grenada|TEMPE]] *[[TETMUND,St.George,Grenada|TETMUND]] *[[THE BOCAS,St.George,Grenada|THE BOCAS]] *[[THE GREENS,St.George,Grenada|THE GREENS]] *[[THE LIMES,St.George,Grenada|THE LIMES]] *[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]] *[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]] *[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]] *[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]] *[[TRUE BLUE,St.George,Grenada|TRUE BLUE]] *[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]] *[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]] *[[TYRREL STREET,St.George,Grenada|TYRREL STREET]] *[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]] *[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]] *[[VENDOME,St.George,Grenada|VENDOME]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1287</ref> *[[WELCOME,St.George,Grenada|WELCOME]] *[[WHITE GUN,St.George,Grenada|WHITE GUN]] *[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]] *[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]] *[[WILLIS,St.George,Grenada|WILLIS]] *[[WOODLANDS,St.George,Grenada|WOODLANDS]] *[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]] *[[YOUNG STREET,St.George,Grenada|YOUNG STREET]] ==[[St.John,Grenada|St.John]]== *[[BACK STREET,St.John,Grenada|BACK STREET]] *[[BELVIDERE,St.John,Grenada|BELVIDERE]] *[[BLACK BAY,St.John,Grenada|BLACK BAY]] *[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]] *[[BROOKLYN,St.John,Grenada|BROOKLYN]] *[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]] *[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]] *[[CLOZIER,St.John,Grenada|CLOZIER]] *[[CONCORD,St.John,Grenada|CONCORD]] *[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]] *[[COTTON BAILY,St.John,Grenada|COTTON BAILY]] *[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]] *[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]] *[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]] *[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]] *[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]] *[[FLORIDA,St.John,Grenada|FLORIDA]] *[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]] *[[GRAND ROY,St.John,Grenada|GRAND ROY]] *[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]] *[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]] *[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]] *[[MARIGOT,St.John,Grenada|MARIGOT]] *[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]] *[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]] *[[MT. GRANBY,St.John,Grenada|MT. GRANBY]] *[[MT. NESBIT,St.John,Grenada|MT. NESBIT]] *[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]] *[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]] *[[PALMISTE,St.John,Grenada|PALMISTE]] *[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]] *[[RENNIE,St.John,Grenada|RENNIE]] *[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]] *[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]] *[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]] *[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]] *[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]] *[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]] *[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]] *[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]] *[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]] *[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]] *[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]] *[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]] *[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]] *[[WATERLOO,St.John,Grenada|WATERLOO]] *[[WOODFORD,St.John,Grenada|WOODFORD]] ==[[St.David,Grenada|St.David]]== *[[APRES TOUTE,St.David,Grenada|APRES TOUTE]] *[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]] *[[BEATON,St.David,Grenada|BEATON]] *[[BELLE ISLE,St.David,Grenada|BELLE ISLE]] *[[BELLE VUE,St.David,Grenada|BELLE VUE]] *[[BOCAGE,St.David,Grenada|BOCAGE]] *[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]] *[[COALS GAPS,St.David,Grenada|COALS GAPS]] *[[CONTENT,St.David,Grenada|CONTENT]] *[[CORINTH,St.David,Grenada|CORINTH]] *[[DUDMAR,St.David,Grenada|DUDMAR]] *[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]] *[[HARMONY HALL,St.David,Grenada|HARMONY HALL]] *[[LA CALOHME,St.David,Grenada|LA CALOHME]] *[[LA FEMME,St.David,Grenada|LA FEMME]] *[[LA FLORETTA,St.David,Grenada|LA FLORETTA]] *[[LA PASTORA,St.David,Grenada|LA PASTORA]] *[[LA SAGESSE,St.David,Grenada|LA SAGESSE]] *[[LA TANTE,St.David,Grenada|LA TANTE]] *[[MARLMOUNT,St.David,Grenada|MARLMOUNT]] *[[MARDIGRAS,St.David,Grenada|MARDIGRAS]] *[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]] *[[MAULTY,St.David,Grenada|MAULTY]] *[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]] *[[MINORCA,St.David,Grenada|MINORCA]] *[[MORNE DELICE,St.David,Grenada|MORNE DELICE]] *[[MON REPOS,St.David,Grenada|MON REPOS]] *[[MT. AGNES,St.David,Grenada|MT. AGNES]] *[[MT. DISIRE,St.David,Grenada|MT. DISIRE]] *[[MT. ROSE,St.David,Grenada|MT. ROSE]] *[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]] *[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]] *[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]] *[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]] *[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]] *[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]] *[[PETITE ETANG,St.David,Grenada|PETITE ETANG]] *[[POMME ROSE,St.David,Grenada|POMME ROSE]] *[[RED GATE,St.David,Grenada|RED GATE]] *[[REDMUD,St.David,Grenada|REDMUD]] *[[REQUIN,St.David,Grenada|REQUIN]] *[[SLINGER STREET,St.David,Grenada|SLINGER STREET]] *[[SYRACUSE,St.David,Grenada|SYRACUSE]] *[[THEBAIDE,St.David,Grenada|THEBAIDE]] *[[TABOR,St.David,Grenada|TABOR]] *[[UPPER LAURA,St.David,Grenada|UPPER LAURA]] *[[VINCENNES,St.David,Grenada|VINCENNES]] *[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]] *[[WINDSOR,St.David,Grenada|WINDSOR]] *[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]] ==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]== *[[BAYALEAU,Carriacou,Grenada|BAYALEAU]] *[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]] *[[BELAIR,Carriacou,Grenada|BELAIR]] *[[BELLE VUE,Carriacou,Grenada|BELLE VUE]] *[[BELMONT,Carriacou,Grenada|BELMONT]] *[[BOGLES,Carriacou,Grenada|BOGLES]] *[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]] *[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]] *[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1385]</ref> *[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]] *[[DOVER,Carriacou,Grenada|DOVER]] *[[DUMFRIES,Carriacou,Grenada|DUMFRIES]] *[[GRAND BAY,Carriacou,Grenada|GRAND BAY]] *[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]] *[[HERMITAGE,Carriacou,Grenada|HERMITAGE]] *[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]] *[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]] *[[LAURISTON,Carriacou,Grenada|LAURISTON]] *[[LIMLAIR,Carriacou,Grenada|LIMLAIR]] *[[MELDRUM,Carriacou,Grenada|MELDRUM]] *[[MT. DISIRE,Carriacou,Grenada|MT. DISIRE]] *[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]] *[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]] *[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]] *[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]] *[[SIX ROADS,Carriacou,Grenada|SIX ROADS]] *[[TOP HILL,Carriacou,Grenada|TOP HILL]] *[[WINDWARD,Carriacou,Grenada|WINDWARD]] *[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]] ==[[St.Andrew,Grenada|St.Andrew]]== *[[MT. FANN,St. Andrew,Grenada|MT. FANN]] *[[ADELPHI,St.Andrew,Grenada|ADELPHI]] *[[AHOMA,St.Andrew,Grenada|AHOMA]] *[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]] *[[BAYROAD,St.Andrew,Grenada|BAYROAD]] *[[BLAIZE,St.Andrew,Grenada|BLAIZE]] *[[BAMBOO,St.Andrew,Grenada|BAMBOO]] *[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]] *[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]] *[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]] *[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]] *[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]] *[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]] *[[BYELANDS,St.Andrew,Grenada|BYELANDS]] *[[CAFE,St.Andrew,Grenada|CAFE]] *[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]] *[[CARRIERE,St.Andrew,Grenada|CARRIERE]] *[[CARRUTH,St.Andrew,Grenada|CARRUTH]] *[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]] *[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]] *[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]] *[[CODRONA,St.Andrew,Grenada|CODRONA]] *[[CONFERENCE,St.Andrew,Grenada|CONFERENCE]] *[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]] *[[CROCHU,St.Andrew,Grenada|CROCHU]] *[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]] *[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]] *[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]] *[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]] *[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]] *[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]] *[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]] *[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]] *[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]] *[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]] *[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]] *[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]] *[[GUPO,St.Andrew,Grenada|GUPO]] *[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]] *[[HERMON,St.Andrew,Grenada|HERMON]] *[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]] *[[HOPE,St.Andrew,Grenada|HOPE]] *[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]] *[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]] *[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]] *[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]] *[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]] *[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]] *[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]] *[[MAHOUT,St.Andrew,Grenada|MAHOUT]] *[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]] *[[MARQUIS,St.Andrew,Grenada|MARQUIS]] *[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]] *[[MEADOW,St.Andrew,Grenada|MEADOW]] *[[MELDRUM,St.Andrew,Grenada|MELDRUM]] *[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]] *[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]] *[[MOYAH,St.Andrew,Grenada|MOYAH]] *[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]] *[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]] *[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]] *[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]] *[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]] *[[MUNICH,St.Andrew,Grenada|MUNICH]] *[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]] *[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]] *[[PARACLETE,St.Andrew,Grenada|PARACLETE]] *[[PARADISE,St.Andrew,Grenada|PARADISE]] *[[PEARLS,St.Andrew,Grenada|PEARLS]] *[[PLATEAU,St.Andrew,Grenada|PLATEAU]] *[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]] *[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]] *[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]] *[[RETREAT,St.Andrew,Grenada|RETREAT]] *[[RICHMOND,St.Andrew,Grenada|RICHMOND]] *[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]] *[[SABB,St.Andrew,Grenada|SABB]] *[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]] *[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]] *[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]] *[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]] *[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]] *[[SIMON,St.Andrew,Grenada|SIMON]] *[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]] *[[SOUBISE,St.Andrew,Grenada|SOUBISE]] *[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]] *[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]] *[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]] *[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]] *[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]] *[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]] *[[TIVOLI,St.Andrew,Grenada|TIVOLI]] *[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]] *[[UNION,St.Andrew,Grenada|UNION]] *[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]] *[[THE VILLA,St.Andrew,Grenada|THE VILLA]] *[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]] *[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]] *[[WALKER,St.Andrew,Grenada|WALKER]] *[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]] ==[[St.Mark,Grenada|St.Mark]]== *[[BOCAGE,St.Mark,Grenada|BOCAGE]] *[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]] *[[BONAIR,St.Mark,Grenada|BONAIR]] *[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]] *[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]] *[[COAST GUARD,St.Mark,Grenada|COAST GUARD]] *[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]] *[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]] *[[DARVEY,St.Mark,Grenada|DARVEY]] *[[DE VILLA,St.Mark,Grenada|DE VILLA]] *[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]] *[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]] *[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]] *[[DUQUESNE,St.Mark,Grenada|DUQUESNE]] *[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]] *[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]] *[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]] *[[INDUSTRY,St.Mark,Grenada|INDUSTRY]] *[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]] *[[MARAN,St.Mark,Grenada|MARAN]] *[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]] *[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]] *[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]] *[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]] *[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]] *[[RESOURCE,St.Mark,Grenada|RESOURCE]] *[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]] *[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]] *[[SAMARITAN,St.Mark,Grenada|SAMARITAN]] *[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]] *[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]] *[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]] *[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]] *[[VICTORIA,St.Mark,Grenada|VICTORIA]] *[[WALTHAM,St.Mark,Grenada|WALTHAM]] ==[[St.Patrick,Grenada|St.Patrick]]== *[[BATHWAY,St.Patrick,Grenada|BATHWAY]] *[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]] *[[CEDARS,St.Patrick,Grenada|CEDARS]] *[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]] *[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]] *[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]] *[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]] *[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]] *[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]] *[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]] *[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]] *[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]] *[[LA TASTE,St.Patrick,Grenada|LA TASTE]] *[[LEVERA,St.Patrick,Grenada|LEVERA]] *[[MADEYS,St.Patrick,Grenada|MADEYS]] *[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]] *[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]] *[[MARLI,St.Patrick,Grenada|MARLI]] *[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]] *[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]] *[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]] *[[MT. RICH,St.Patrick,Grenada|MT. RICH]] *[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]] *[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]] *[[PLAINS,St.Patrick,Grenada|PLAINS]] *[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]] *[[PROSPECT,St.Patrick,Grenada|PROSPECT]] *[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]] *[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]] *[[RED MUD,St.Patrick,Grenada|RED MUD]] *[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]] *[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]] *[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]] *[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]] *[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]] *[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]] == Uncategorized== *[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]] *[[AFRICA,,Grenada|AFRICA]] *[[APSLEY HILL,,Grenada|APSLEY HILL]] *[[BLUGGO,,Grenada|BLUGGO]] *[[BYWAY,,Grenada|BYWAY]] *[[CELESTE,,Grenada|CELESTE]] *[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]] *[[CHADDEAU,,Grenada|CHADDEAU]] *[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]] *[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]] *[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]] *[[COOPER'S HILL,,Grenada|COOPER'S HILL]] *[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]] *[[DE SILLES,,Grenada|DE SILLES]] *[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]] *[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]] *[[DURRANT ROAD,,Grenada|DURRANT ROAD]] *[[FENCE,,Grenada|FENCE]] *[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]] *[[FIELD STREET,,Grenada|FIELD STREET]] *[[FOUNTAIN,,Grenada|FOUNTAIN]] *[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]] *[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]] *[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]] *[[HENRY STREET,,Grenada|HENRY STREET]] *[[JONES ROAD,,Grenada|JONES ROAD]] *[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]] *[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]] *[[LOWER LAURA,,Grenada|LOWER LAURA]] *[[LYDER,,Grenada|LYDER]] *[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]] *[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]] *[[MALIGNON,,Grenada|MALIGNON]] *[[MARINE VILLA,,Grenada|MARINE VILLA]] *[[MAUCHETTE,,Grenada|MAUCHETTE]] *[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]] *[[MELROSE,,Grenada|MELROSE]] *[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]] *[[MT. ANON,,Grenada|MT. ANON]] *[[MT. CUMMA,,Grenada|MT. CUMMA]] *[[MT. FELIX,,Grenada|MT. FELIX]] *[[MT. PLASIR,,Grenada|MT. PLASIR]] *[[MT. REUIL,,Grenada|MT. REUIL]] *[[MT. RODNEY,,Grenada|MT. RODNEY]] *[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]] *[[MUNRO STREET,,Grenada|MUNRO STREET]] *[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]] *[[NETTLE POINT,,Grenada|NETTLE POINT]] *[[NEW GARDENS,,Grenada|NEW GARDENS]] *[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]] *[[PARK ESTATE,,Grenada|PARK ESTATE]] *[[PENNY RETREAT,,Grenada|PENNY RETREAT]] *[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]] *[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]] *[[SCHOOL LANE,,Grenada|SCHOOL LANE]] *[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]] *[[ST. CYR,,Grenada|ST. CYR]] *[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]] *[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]] *[[TAYBAKAY,,Grenada|TAYBAKAY]] *[[TAYLOR,,Grenada|TAYLOR]] *[[THE SUMMIT,,Grenada|THE SUMMIT]] *[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]] *[[VINEYARD,,Grenada|VINEYARD]] 52f9902986271953931bcc34bb13fe7304c9d032 180 179 2022-07-22T16:43:33Z Wikiricky 1 added belmont St patrick wikitext text/x-wiki This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes ==[[St.George,Grenada|St.George]]== *[[ANNANDALE,St.George,Grenada|ANNANDALE]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/100 Annandale Estate - Legacies of British Slavery - UCL]</ref> *[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]] *[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]] *[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]] *[[BEAULIEU,St.George,Grenada|BEAULIEU]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1320 <nowiki>Beaulieu [ Grenada | St George ] - UCL</nowiki>]</ref> *[[BELMONT,St.George,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1290</ref> *[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]] *[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]] *[[BOCA,St.George,Grenada|BOCA]] *[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]] *[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]] *[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]] *[[BRIZAN,St.George,Grenada|BRIZAN]] *[[CAFE,St.George,Grenada|CAFE]] *[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]] *[[CALIVIGNY,St.George,Grenada|CALIVIGNY]] *[[CALLISTE,St.George,Grenada|CALLISTE]] *[[CARENAGE,St.George,Grenada|CARENAGE]] *[[CARRIERE,St.George,Grenada|CARRIERE]] *[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]] *[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]] *[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]] *[[CHERRY HILL,St.George,Grenada|CHERRY HILL]] *[[CHURCH STREET,St.George,Grenada|CHURCH STREET]] *[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]] *[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]] *[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]] *[[CONFER,St.George,Grenada|CONFER]] *[[CONSTANTINE,St.George,Grenada|CONSTANTINE]] *[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]] *[[COX ALLEY,St.George,Grenada|COX ALLEY]] *[[CREIGHTON,St.George,Grenada|CREIGHTON]] *[[CROSS STREET,St.George,Grenada|CROSS STREET]] *[[D'ARBEAU,St.George,Grenada|D'ARBEAU]] *[[DE FAUX,St.George,Grenada|DE FAUX]] *[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]] *[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]] *[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]] *[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]] *[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]] *[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]] *[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]] *[[FONTENOY,St.George,Grenada|FONTENOY]] *[[FORT JUEDY,St.George,Grenada|FORT JUEDY]] *[[FREQUENTE,St.George,Grenada|FREQUENTE]] *[[GOLF COURSE,St.George,Grenada|GOLF COURSE]] *[[GOOD HOPE,St.George,Grenada|GOOD HOPE]] *[[GORE STREET,St.George,Grenada|GORE STREET]] *[[GRAND ANSE,St.George,Grenada|GRAND ANSE]] *[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]] *[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]] *[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]] *[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]] *[[GRAND MAL,St.George,Grenada|GRAND MAL]] *[[GRANTON,St.George,Grenada|GRANTON]] *[[GREEN STREET,St.George,Grenada|GREEN STREET]] *[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]] *[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]] *[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]] *[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]] *[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]] *[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]] *[[HAPPY HILL,St.George,Grenada|HAPPY HILL]] *[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]] *[[HILLS ROAD,St.George,Grenada|HILLS ROAD]] *[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]] *[[HOPE VALE,St.George,Grenada|HOPE VALE]] *[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]] *[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]] *[[JUMBIE,St.George,Grenada|JUMBIE]] *[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]] *[[LA BORIE,St.George,Grenada|LA BORIE]] *[[LA MODE,St.George,Grenada|LA MODE]] *[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]] *[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]] *[[LONG GUTTER,St.George,Grenada|LONG GUTTER]] *[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]] *[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]] *[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]] *[[LUCAS STREET,St.George,Grenada|LUCAS STREET]] *[[MALONEY STREET,St.George,Grenada|MALONEY STREET]] *[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]] *[[MARIAN,St.George,Grenada|MARIAN]] *[[MARKET HILL,St.George,Grenada|MARKET HILL]] *[[MARRAST HILL,St.George,Grenada|MARRAST HILL]] *[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]] *[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]] *[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]] *[[MOLINIERE,St.George,Grenada|MOLINIERE]] *[[MONT TOUTE,St.George,Grenada|MONT TOUTE]] *[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]] *[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]] *[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]] *[[MT. AIRY,St.George,Grenada|MT. AIRY]] *[[MT. GAY,St.George,Grenada|MT. GAY]] *[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]] *[[MT. MORITZ,St.George,Grenada|MT. MORITZ]] *[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]] *[[MT. RUSH,St.George,Grenada|MT. RUSH]] *[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]] *[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]] *[[OLD FORT,St.George,Grenada|OLD FORT]] *[[PADDOCK,St.George,Grenada|PADDOCK]] *[[PARADE,St.George,Grenada|PARADE]] *[[PARK LANE,St.George,Grenada|PARK LANE]] *[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]] *[[PETERSFIELD,St.George,Grenada|PETERSFIELD]] *[[POINT SALINES,St.George,Grenada|POINT SALINES]] *[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]] *[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]] *[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]] *[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]] *[[RIVER ROAD,St.George,Grenada|RIVER ROAD]] *[[ROEBUCK,St.George,Grenada|ROEBUCK]] *[[SANS SOUCI,St.George,Grenada|SANS SOUCI]] *[[SCOTT STREET,St.George,Grenada|SCOTT STREET]] *[[SHENDA,St.George,Grenada|SHENDA]] *[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]] *[[SNUG CORNER,St.George,Grenada|SNUG CORNER]] *[[SPRINGS,St.George,Grenada|SPRINGS]] *[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]] *[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]] *[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]] *[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]] *[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]] *[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]] *[[TEMPE,St.George,Grenada|TEMPE]] *[[TETMUND,St.George,Grenada|TETMUND]] *[[THE BOCAS,St.George,Grenada|THE BOCAS]] *[[THE GREENS,St.George,Grenada|THE GREENS]] *[[THE LIMES,St.George,Grenada|THE LIMES]] *[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]] *[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]] *[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]] *[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]] *[[TRUE BLUE,St.George,Grenada|TRUE BLUE]] *[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]] *[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]] *[[TYRREL STREET,St.George,Grenada|TYRREL STREET]] *[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]] *[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]] *[[VENDOME,St.George,Grenada|VENDOME]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1287</ref> *[[WELCOME,St.George,Grenada|WELCOME]] *[[WHITE GUN,St.George,Grenada|WHITE GUN]] *[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]] *[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]] *[[WILLIS,St.George,Grenada|WILLIS]] *[[WOODLANDS,St.George,Grenada|WOODLANDS]] *[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]] *[[YOUNG STREET,St.George,Grenada|YOUNG STREET]] ==[[St.John,Grenada|St.John]]== *[[BACK STREET,St.John,Grenada|BACK STREET]] *[[BELVIDERE,St.John,Grenada|BELVIDERE]] *[[BLACK BAY,St.John,Grenada|BLACK BAY]] *[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]] *[[BROOKLYN,St.John,Grenada|BROOKLYN]] *[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]] *[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]] *[[CLOZIER,St.John,Grenada|CLOZIER]] *[[CONCORD,St.John,Grenada|CONCORD]] *[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]] *[[COTTON BAILY,St.John,Grenada|COTTON BAILY]] *[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]] *[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]] *[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]] *[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]] *[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]] *[[FLORIDA,St.John,Grenada|FLORIDA]] *[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]] *[[GRAND ROY,St.John,Grenada|GRAND ROY]] *[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]] *[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]] *[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]] *[[MARIGOT,St.John,Grenada|MARIGOT]] *[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]] *[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]] *[[MT. GRANBY,St.John,Grenada|MT. GRANBY]] *[[MT. NESBIT,St.John,Grenada|MT. NESBIT]] *[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]] *[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]] *[[PALMISTE,St.John,Grenada|PALMISTE]] *[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]] *[[RENNIE,St.John,Grenada|RENNIE]] *[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]] *[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]] *[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]] *[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]] *[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]] *[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]] *[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]] *[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]] *[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]] *[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]] *[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]] *[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]] *[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]] *[[WATERLOO,St.John,Grenada|WATERLOO]] *[[WOODFORD,St.John,Grenada|WOODFORD]] ==[[St.David,Grenada|St.David]]== *[[APRES TOUTE,St.David,Grenada|APRES TOUTE]] *[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]] *[[BEATON,St.David,Grenada|BEATON]] *[[BELLE ISLE,St.David,Grenada|BELLE ISLE]] *[[BELLE VUE,St.David,Grenada|BELLE VUE]] *[[BOCAGE,St.David,Grenada|BOCAGE]] *[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]] *[[COALS GAPS,St.David,Grenada|COALS GAPS]] *[[CONTENT,St.David,Grenada|CONTENT]] *[[CORINTH,St.David,Grenada|CORINTH]] *[[DUDMAR,St.David,Grenada|DUDMAR]] *[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]] *[[HARMONY HALL,St.David,Grenada|HARMONY HALL]] *[[LA CALOHME,St.David,Grenada|LA CALOHME]] *[[LA FEMME,St.David,Grenada|LA FEMME]] *[[LA FLORETTA,St.David,Grenada|LA FLORETTA]] *[[LA PASTORA,St.David,Grenada|LA PASTORA]] *[[LA SAGESSE,St.David,Grenada|LA SAGESSE]] *[[LA TANTE,St.David,Grenada|LA TANTE]] *[[MARLMOUNT,St.David,Grenada|MARLMOUNT]] *[[MARDIGRAS,St.David,Grenada|MARDIGRAS]] *[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]] *[[MAULTY,St.David,Grenada|MAULTY]] *[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]] *[[MINORCA,St.David,Grenada|MINORCA]] *[[MORNE DELICE,St.David,Grenada|MORNE DELICE]] *[[MON REPOS,St.David,Grenada|MON REPOS]] *[[MT. AGNES,St.David,Grenada|MT. AGNES]] *[[MT. DISIRE,St.David,Grenada|MT. DISIRE]] *[[MT. ROSE,St.David,Grenada|MT. ROSE]] *[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]] *[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]] *[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]] *[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]] *[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]] *[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]] *[[PETITE ETANG,St.David,Grenada|PETITE ETANG]] *[[POMME ROSE,St.David,Grenada|POMME ROSE]] *[[RED GATE,St.David,Grenada|RED GATE]] *[[REDMUD,St.David,Grenada|REDMUD]] *[[REQUIN,St.David,Grenada|REQUIN]] *[[SLINGER STREET,St.David,Grenada|SLINGER STREET]] *[[SYRACUSE,St.David,Grenada|SYRACUSE]] *[[THEBAIDE,St.David,Grenada|THEBAIDE]] *[[TABOR,St.David,Grenada|TABOR]] *[[UPPER LAURA,St.David,Grenada|UPPER LAURA]] *[[VINCENNES,St.David,Grenada|VINCENNES]] *[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]] *[[WINDSOR,St.David,Grenada|WINDSOR]] *[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]] ==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]== *[[BAYALEAU,Carriacou,Grenada|BAYALEAU]] *[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]] *[[BELAIR,Carriacou,Grenada|BELAIR]] *[[BELLE VUE,Carriacou,Grenada|BELLE VUE]] *[[BELMONT,Carriacou,Grenada|BELMONT]] *[[BOGLES,Carriacou,Grenada|BOGLES]] *[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]] *[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]] *[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1385]</ref> *[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]] *[[DOVER,Carriacou,Grenada|DOVER]] *[[DUMFRIES,Carriacou,Grenada|DUMFRIES]] *[[GRAND BAY,Carriacou,Grenada|GRAND BAY]] *[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]] *[[HERMITAGE,Carriacou,Grenada|HERMITAGE]] *[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]] *[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]] *[[LAURISTON,Carriacou,Grenada|LAURISTON]] *[[LIMLAIR,Carriacou,Grenada|LIMLAIR]] *[[MELDRUM,Carriacou,Grenada|MELDRUM]] *[[MT. DISIRE,Carriacou,Grenada|MT. DISIRE]] *[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]] *[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]] *[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]] *[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]] *[[SIX ROADS,Carriacou,Grenada|SIX ROADS]] *[[TOP HILL,Carriacou,Grenada|TOP HILL]] *[[WINDWARD,Carriacou,Grenada|WINDWARD]] *[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]] ==[[St.Andrew,Grenada|St.Andrew]]== *[[MT. FANN,St. Andrew,Grenada|MT. FANN]] *[[ADELPHI,St.Andrew,Grenada|ADELPHI]] *[[AHOMA,St.Andrew,Grenada|AHOMA]] *[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]] *[[BAYROAD,St.Andrew,Grenada|BAYROAD]] *[[BLAIZE,St.Andrew,Grenada|BLAIZE]] *[[BAMBOO,St.Andrew,Grenada|BAMBOO]] *[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]] *[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]] *[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]] *[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]] *[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]] *[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]] *[[BYELANDS,St.Andrew,Grenada|BYELANDS]] *[[CAFE,St.Andrew,Grenada|CAFE]] *[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]] *[[CARRIERE,St.Andrew,Grenada|CARRIERE]] *[[CARRUTH,St.Andrew,Grenada|CARRUTH]] *[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]] *[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]] *[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]] *[[CODRONA,St.Andrew,Grenada|CODRONA]] *[[CONFERENCE,St.Andrew,Grenada|CONFERENCE]] *[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]] *[[CROCHU,St.Andrew,Grenada|CROCHU]] *[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]] *[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]] *[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]] *[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]] *[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]] *[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]] *[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]] *[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]] *[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]] *[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]] *[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]] *[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]] *[[GUPO,St.Andrew,Grenada|GUPO]] *[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]] *[[HERMON,St.Andrew,Grenada|HERMON]] *[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]] *[[HOPE,St.Andrew,Grenada|HOPE]] *[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]] *[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]] *[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]] *[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]] *[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]] *[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]] *[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]] *[[MAHOUT,St.Andrew,Grenada|MAHOUT]] *[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]] *[[MARQUIS,St.Andrew,Grenada|MARQUIS]] *[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]] *[[MEADOW,St.Andrew,Grenada|MEADOW]] *[[MELDRUM,St.Andrew,Grenada|MELDRUM]] *[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]] *[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]] *[[MOYAH,St.Andrew,Grenada|MOYAH]] *[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]] *[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]] *[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]] *[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]] *[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]] *[[MUNICH,St.Andrew,Grenada|MUNICH]] *[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]] *[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]] *[[PARACLETE,St.Andrew,Grenada|PARACLETE]] *[[PARADISE,St.Andrew,Grenada|PARADISE]] *[[PEARLS,St.Andrew,Grenada|PEARLS]] *[[PLATEAU,St.Andrew,Grenada|PLATEAU]] *[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]] *[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]] *[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]] *[[RETREAT,St.Andrew,Grenada|RETREAT]] *[[RICHMOND,St.Andrew,Grenada|RICHMOND]] *[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]] *[[SABB,St.Andrew,Grenada|SABB]] *[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]] *[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]] *[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]] *[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]] *[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]] *[[SIMON,St.Andrew,Grenada|SIMON]] *[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]] *[[SOUBISE,St.Andrew,Grenada|SOUBISE]] *[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]] *[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]] *[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]] *[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]] *[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]] *[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]] *[[TIVOLI,St.Andrew,Grenada|TIVOLI]] *[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]] *[[UNION,St.Andrew,Grenada|UNION]] *[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]] *[[THE VILLA,St.Andrew,Grenada|THE VILLA]] *[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]] *[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]] *[[WALKER,St.Andrew,Grenada|WALKER]] *[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]] ==[[St.Mark,Grenada|St.Mark]]== *[[BOCAGE,St.Mark,Grenada|BOCAGE]] *[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]] *[[BONAIR,St.Mark,Grenada|BONAIR]] *[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]] *[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]] *[[COAST GUARD,St.Mark,Grenada|COAST GUARD]] *[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]] *[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]] *[[DARVEY,St.Mark,Grenada|DARVEY]] *[[DE VILLA,St.Mark,Grenada|DE VILLA]] *[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]] *[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]] *[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]] *[[DUQUESNE,St.Mark,Grenada|DUQUESNE]] *[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]] *[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]] *[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]] *[[INDUSTRY,St.Mark,Grenada|INDUSTRY]] *[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]] *[[MARAN,St.Mark,Grenada|MARAN]] *[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]] *[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]] *[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]] *[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]] *[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]] *[[RESOURCE,St.Mark,Grenada|RESOURCE]] *[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]] *[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]] *[[SAMARITAN,St.Mark,Grenada|SAMARITAN]] *[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]] *[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]] *[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]] *[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]] *[[VICTORIA,St.Mark,Grenada|VICTORIA]] *[[WALTHAM,St.Mark,Grenada|WALTHAM]] ==[[St.Patrick,Grenada|St.Patrick]]== *[[BATHWAY,St.Patrick,Grenada|BATHWAY]] *[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]] *[[BELMONT,St.Patrick,Grenada|BELMONT]] *[[CEDARS,St.Patrick,Grenada|CEDARS]] *[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]] *[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]] *[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]] *[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]] *[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]] *[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]] *[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]] *[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]] *[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]] *[[LA TASTE,St.Patrick,Grenada|LA TASTE]] *[[LEVERA,St.Patrick,Grenada|LEVERA]] *[[MADEYS,St.Patrick,Grenada|MADEYS]] *[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]] *[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]] *[[MARLI,St.Patrick,Grenada|MARLI]] *[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]] *[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]] *[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]] *[[MT. RICH,St.Patrick,Grenada|MT. RICH]] *[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]] *[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]] *[[PLAINS,St.Patrick,Grenada|PLAINS]] *[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]] *[[PROSPECT,St.Patrick,Grenada|PROSPECT]] *[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]] *[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]] *[[RED MUD,St.Patrick,Grenada|RED MUD]] *[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]] *[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]] *[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]] *[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]] *[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]] *[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]] == Uncategorized== *[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]] *[[AFRICA,,Grenada|AFRICA]] *[[APSLEY HILL,,Grenada|APSLEY HILL]] *[[BLUGGO,,Grenada|BLUGGO]] *[[BYWAY,,Grenada|BYWAY]] *[[CELESTE,,Grenada|CELESTE]] *[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]] *[[CHADDEAU,,Grenada|CHADDEAU]] *[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]] *[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]] *[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]] *[[COOPER'S HILL,,Grenada|COOPER'S HILL]] *[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]] *[[DE SILLES,,Grenada|DE SILLES]] *[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]] *[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]] *[[DURRANT ROAD,,Grenada|DURRANT ROAD]] *[[FENCE,,Grenada|FENCE]] *[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]] *[[FIELD STREET,,Grenada|FIELD STREET]] *[[FOUNTAIN,,Grenada|FOUNTAIN]] *[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]] *[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]] *[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]] *[[HENRY STREET,,Grenada|HENRY STREET]] *[[JONES ROAD,,Grenada|JONES ROAD]] *[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]] *[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]] *[[LOWER LAURA,,Grenada|LOWER LAURA]] *[[LYDER,,Grenada|LYDER]] *[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]] *[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]] *[[MALIGNON,,Grenada|MALIGNON]] *[[MARINE VILLA,,Grenada|MARINE VILLA]] *[[MAUCHETTE,,Grenada|MAUCHETTE]] *[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]] *[[MELROSE,,Grenada|MELROSE]] *[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]] *[[MT. ANON,,Grenada|MT. ANON]] *[[MT. CUMMA,,Grenada|MT. CUMMA]] *[[MT. FELIX,,Grenada|MT. FELIX]] *[[MT. PLASIR,,Grenada|MT. PLASIR]] *[[MT. REUIL,,Grenada|MT. REUIL]] *[[MT. RODNEY,,Grenada|MT. RODNEY]] *[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]] *[[MUNRO STREET,,Grenada|MUNRO STREET]] *[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]] *[[NETTLE POINT,,Grenada|NETTLE POINT]] *[[NEW GARDENS,,Grenada|NEW GARDENS]] *[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]] *[[PARK ESTATE,,Grenada|PARK ESTATE]] *[[PENNY RETREAT,,Grenada|PENNY RETREAT]] *[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]] *[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]] *[[SCHOOL LANE,,Grenada|SCHOOL LANE]] *[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]] *[[ST. CYR,,Grenada|ST. CYR]] *[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]] *[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]] *[[TAYBAKAY,,Grenada|TAYBAKAY]] *[[TAYLOR,,Grenada|TAYLOR]] *[[THE SUMMIT,,Grenada|THE SUMMIT]] *[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]] *[[VINEYARD,,Grenada|VINEYARD]] 7a45accc4887c5fad05d639e183b801dbbe0e8be 181 180 2022-07-22T21:41:35Z Wikiricky 1 /* St.Patrick */ added citations wikitext text/x-wiki This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes ==[[St.George,Grenada|St.George]]== *[[ANNANDALE,St.George,Grenada|ANNANDALE]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/100 Annandale Estate - Legacies of British Slavery - UCL]</ref> *[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]] *[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]] *[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]] *[[BEAULIEU,St.George,Grenada|BEAULIEU]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1320 <nowiki>Beaulieu [ Grenada | St George ] - UCL</nowiki>]</ref> *[[BELMONT,St.George,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1290</ref> *[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]] *[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]] *[[BOCA,St.George,Grenada|BOCA]] *[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]] *[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]] *[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]] *[[BRIZAN,St.George,Grenada|BRIZAN]] *[[CAFE,St.George,Grenada|CAFE]] *[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]] *[[CALIVIGNY,St.George,Grenada|CALIVIGNY]] *[[CALLISTE,St.George,Grenada|CALLISTE]] *[[CARENAGE,St.George,Grenada|CARENAGE]] *[[CARRIERE,St.George,Grenada|CARRIERE]] *[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]] *[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]] *[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]] *[[CHERRY HILL,St.George,Grenada|CHERRY HILL]] *[[CHURCH STREET,St.George,Grenada|CHURCH STREET]] *[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]] *[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]] *[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]] *[[CONFER,St.George,Grenada|CONFER]] *[[CONSTANTINE,St.George,Grenada|CONSTANTINE]] *[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]] *[[COX ALLEY,St.George,Grenada|COX ALLEY]] *[[CREIGHTON,St.George,Grenada|CREIGHTON]] *[[CROSS STREET,St.George,Grenada|CROSS STREET]] *[[D'ARBEAU,St.George,Grenada|D'ARBEAU]] *[[DE FAUX,St.George,Grenada|DE FAUX]] *[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]] *[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]] *[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]] *[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]] *[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]] *[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]] *[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]] *[[FONTENOY,St.George,Grenada|FONTENOY]] *[[FORT JUEDY,St.George,Grenada|FORT JUEDY]] *[[FREQUENTE,St.George,Grenada|FREQUENTE]] *[[GOLF COURSE,St.George,Grenada|GOLF COURSE]] *[[GOOD HOPE,St.George,Grenada|GOOD HOPE]] *[[GORE STREET,St.George,Grenada|GORE STREET]] *[[GRAND ANSE,St.George,Grenada|GRAND ANSE]] *[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]] *[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]] *[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]] *[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]] *[[GRAND MAL,St.George,Grenada|GRAND MAL]] *[[GRANTON,St.George,Grenada|GRANTON]] *[[GREEN STREET,St.George,Grenada|GREEN STREET]] *[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]] *[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]] *[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]] *[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]] *[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]] *[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]] *[[HAPPY HILL,St.George,Grenada|HAPPY HILL]] *[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]] *[[HILLS ROAD,St.George,Grenada|HILLS ROAD]] *[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]] *[[HOPE VALE,St.George,Grenada|HOPE VALE]] *[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]] *[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]] *[[JUMBIE,St.George,Grenada|JUMBIE]] *[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]] *[[LA BORIE,St.George,Grenada|LA BORIE]] *[[LA MODE,St.George,Grenada|LA MODE]] *[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]] *[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]] *[[LONG GUTTER,St.George,Grenada|LONG GUTTER]] *[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]] *[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]] *[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]] *[[LUCAS STREET,St.George,Grenada|LUCAS STREET]] *[[MALONEY STREET,St.George,Grenada|MALONEY STREET]] *[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]] *[[MARIAN,St.George,Grenada|MARIAN]] *[[MARKET HILL,St.George,Grenada|MARKET HILL]] *[[MARRAST HILL,St.George,Grenada|MARRAST HILL]] *[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]] *[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]] *[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]] *[[MOLINIERE,St.George,Grenada|MOLINIERE]] *[[MONT TOUTE,St.George,Grenada|MONT TOUTE]] *[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]] *[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]] *[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]] *[[MT. AIRY,St.George,Grenada|MT. AIRY]] *[[MT. GAY,St.George,Grenada|MT. GAY]] *[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]] *[[MT. MORITZ,St.George,Grenada|MT. MORITZ]] *[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]] *[[MT. RUSH,St.George,Grenada|MT. RUSH]] *[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]] *[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]] *[[OLD FORT,St.George,Grenada|OLD FORT]] *[[PADDOCK,St.George,Grenada|PADDOCK]] *[[PARADE,St.George,Grenada|PARADE]] *[[PARK LANE,St.George,Grenada|PARK LANE]] *[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]] *[[PETERSFIELD,St.George,Grenada|PETERSFIELD]] *[[POINT SALINES,St.George,Grenada|POINT SALINES]] *[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]] *[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]] *[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]] *[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]] *[[RIVER ROAD,St.George,Grenada|RIVER ROAD]] *[[ROEBUCK,St.George,Grenada|ROEBUCK]] *[[SANS SOUCI,St.George,Grenada|SANS SOUCI]] *[[SCOTT STREET,St.George,Grenada|SCOTT STREET]] *[[SHENDA,St.George,Grenada|SHENDA]] *[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]] *[[SNUG CORNER,St.George,Grenada|SNUG CORNER]] *[[SPRINGS,St.George,Grenada|SPRINGS]] *[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]] *[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]] *[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]] *[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]] *[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]] *[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]] *[[TEMPE,St.George,Grenada|TEMPE]] *[[TETMUND,St.George,Grenada|TETMUND]] *[[THE BOCAS,St.George,Grenada|THE BOCAS]] *[[THE GREENS,St.George,Grenada|THE GREENS]] *[[THE LIMES,St.George,Grenada|THE LIMES]] *[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]] *[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]] *[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]] *[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]] *[[TRUE BLUE,St.George,Grenada|TRUE BLUE]] *[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]] *[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]] *[[TYRREL STREET,St.George,Grenada|TYRREL STREET]] *[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]] *[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]] *[[VENDOME,St.George,Grenada|VENDOME]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1287</ref> *[[WELCOME,St.George,Grenada|WELCOME]] *[[WHITE GUN,St.George,Grenada|WHITE GUN]] *[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]] *[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]] *[[WILLIS,St.George,Grenada|WILLIS]] *[[WOODLANDS,St.George,Grenada|WOODLANDS]] *[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]] *[[YOUNG STREET,St.George,Grenada|YOUNG STREET]] ==[[St.John,Grenada|St.John]]== *[[BACK STREET,St.John,Grenada|BACK STREET]] *[[BELVIDERE,St.John,Grenada|BELVIDERE]] *[[BLACK BAY,St.John,Grenada|BLACK BAY]] *[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]] *[[BROOKLYN,St.John,Grenada|BROOKLYN]] *[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]] *[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]] *[[CLOZIER,St.John,Grenada|CLOZIER]] *[[CONCORD,St.John,Grenada|CONCORD]] *[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]] *[[COTTON BAILY,St.John,Grenada|COTTON BAILY]] *[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]] *[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]] *[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]] *[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]] *[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]] *[[FLORIDA,St.John,Grenada|FLORIDA]] *[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]] *[[GRAND ROY,St.John,Grenada|GRAND ROY]] *[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]] *[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]] *[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]] *[[MARIGOT,St.John,Grenada|MARIGOT]] *[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]] *[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]] *[[MT. GRANBY,St.John,Grenada|MT. GRANBY]] *[[MT. NESBIT,St.John,Grenada|MT. NESBIT]] *[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]] *[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]] *[[PALMISTE,St.John,Grenada|PALMISTE]] *[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]] *[[RENNIE,St.John,Grenada|RENNIE]] *[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]] *[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]] *[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]] *[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]] *[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]] *[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]] *[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]] *[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]] *[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]] *[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]] *[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]] *[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]] *[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]] *[[WATERLOO,St.John,Grenada|WATERLOO]] *[[WOODFORD,St.John,Grenada|WOODFORD]] ==[[St.David,Grenada|St.David]]== *[[APRES TOUTE,St.David,Grenada|APRES TOUTE]] *[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]] *[[BEATON,St.David,Grenada|BEATON]] *[[BELLE ISLE,St.David,Grenada|BELLE ISLE]] *[[BELLE VUE,St.David,Grenada|BELLE VUE]] *[[BOCAGE,St.David,Grenada|BOCAGE]] *[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]] *[[COALS GAPS,St.David,Grenada|COALS GAPS]] *[[CONTENT,St.David,Grenada|CONTENT]] *[[CORINTH,St.David,Grenada|CORINTH]] *[[DUDMAR,St.David,Grenada|DUDMAR]] *[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]] *[[HARMONY HALL,St.David,Grenada|HARMONY HALL]] *[[LA CALOHME,St.David,Grenada|LA CALOHME]] *[[LA FEMME,St.David,Grenada|LA FEMME]] *[[LA FLORETTA,St.David,Grenada|LA FLORETTA]] *[[LA PASTORA,St.David,Grenada|LA PASTORA]] *[[LA SAGESSE,St.David,Grenada|LA SAGESSE]] *[[LA TANTE,St.David,Grenada|LA TANTE]] *[[MARLMOUNT,St.David,Grenada|MARLMOUNT]] *[[MARDIGRAS,St.David,Grenada|MARDIGRAS]] *[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]] *[[MAULTY,St.David,Grenada|MAULTY]] *[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]] *[[MINORCA,St.David,Grenada|MINORCA]] *[[MORNE DELICE,St.David,Grenada|MORNE DELICE]] *[[MON REPOS,St.David,Grenada|MON REPOS]] *[[MT. AGNES,St.David,Grenada|MT. AGNES]] *[[MT. DISIRE,St.David,Grenada|MT. DISIRE]] *[[MT. ROSE,St.David,Grenada|MT. ROSE]] *[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]] *[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]] *[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]] *[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]] *[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]] *[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]] *[[PETITE ETANG,St.David,Grenada|PETITE ETANG]] *[[POMME ROSE,St.David,Grenada|POMME ROSE]] *[[RED GATE,St.David,Grenada|RED GATE]] *[[REDMUD,St.David,Grenada|REDMUD]] *[[REQUIN,St.David,Grenada|REQUIN]] *[[SLINGER STREET,St.David,Grenada|SLINGER STREET]] *[[SYRACUSE,St.David,Grenada|SYRACUSE]] *[[THEBAIDE,St.David,Grenada|THEBAIDE]] *[[TABOR,St.David,Grenada|TABOR]] *[[UPPER LAURA,St.David,Grenada|UPPER LAURA]] *[[VINCENNES,St.David,Grenada|VINCENNES]] *[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]] *[[WINDSOR,St.David,Grenada|WINDSOR]] *[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]] ==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]== *[[BAYALEAU,Carriacou,Grenada|BAYALEAU]] *[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]] *[[BELAIR,Carriacou,Grenada|BELAIR]] *[[BELLE VUE,Carriacou,Grenada|BELLE VUE]] *[[BELMONT,Carriacou,Grenada|BELMONT]] *[[BOGLES,Carriacou,Grenada|BOGLES]] *[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]] *[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]] *[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1385]</ref> *[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]] *[[DOVER,Carriacou,Grenada|DOVER]] *[[DUMFRIES,Carriacou,Grenada|DUMFRIES]] *[[GRAND BAY,Carriacou,Grenada|GRAND BAY]] *[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]] *[[HERMITAGE,Carriacou,Grenada|HERMITAGE]] *[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]] *[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]] *[[LAURISTON,Carriacou,Grenada|LAURISTON]] *[[LIMLAIR,Carriacou,Grenada|LIMLAIR]] *[[MELDRUM,Carriacou,Grenada|MELDRUM]] *[[MT. DISIRE,Carriacou,Grenada|MT. DISIRE]] *[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]] *[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]] *[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]] *[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]] *[[SIX ROADS,Carriacou,Grenada|SIX ROADS]] *[[TOP HILL,Carriacou,Grenada|TOP HILL]] *[[WINDWARD,Carriacou,Grenada|WINDWARD]] *[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]] ==[[St.Andrew,Grenada|St.Andrew]]== *[[MT. FANN,St. Andrew,Grenada|MT. FANN]] *[[ADELPHI,St.Andrew,Grenada|ADELPHI]] *[[AHOMA,St.Andrew,Grenada|AHOMA]] *[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]] *[[BAYROAD,St.Andrew,Grenada|BAYROAD]] *[[BLAIZE,St.Andrew,Grenada|BLAIZE]] *[[BAMBOO,St.Andrew,Grenada|BAMBOO]] *[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]] *[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]] *[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]] *[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]] *[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]] *[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]] *[[BYELANDS,St.Andrew,Grenada|BYELANDS]] *[[CAFE,St.Andrew,Grenada|CAFE]] *[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]] *[[CARRIERE,St.Andrew,Grenada|CARRIERE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1305</ref> *[[CARRUTH,St.Andrew,Grenada|CARRUTH]] *[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]] *[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]] *[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]] *[[CODRONA,St.Andrew,Grenada|CODRONA]] *[[CONFERENCE,St.Andrew,Grenada|CONFERENCE]] *[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]] *[[CROCHU,St.Andrew,Grenada|CROCHU]] *[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]] *[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]] *[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]] *[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]] *[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]] *[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]] *[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]] *[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]] *[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]] *[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]] *[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]] *[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]] *[[GUPO,St.Andrew,Grenada|GUPO]] *[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]] *[[HERMON,St.Andrew,Grenada|HERMON]] *[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]] *[[HOPE,St.Andrew,Grenada|HOPE]] *[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]] *[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]] *[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]] *[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]] *[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]] *[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]] *[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]] *[[MAHOUT,St.Andrew,Grenada|MAHOUT]] *[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]] *[[MARQUIS,St.Andrew,Grenada|MARQUIS]] *[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]] *[[MEADOW,St.Andrew,Grenada|MEADOW]] *[[MELDRUM,St.Andrew,Grenada|MELDRUM]] *[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]] *[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]] *[[MOYAH,St.Andrew,Grenada|MOYAH]] *[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]] *[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]] *[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]] *[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]] *[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]] *[[MUNICH,St.Andrew,Grenada|MUNICH]] *[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]] *[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]] *[[PARACLETE,St.Andrew,Grenada|PARACLETE]] *[[PARADISE,St.Andrew,Grenada|PARADISE]] *[[PEARLS,St.Andrew,Grenada|PEARLS]] *[[PLATEAU,St.Andrew,Grenada|PLATEAU]] *[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]] *[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]] *[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]] *[[RETREAT,St.Andrew,Grenada|RETREAT]] *[[RICHMOND,St.Andrew,Grenada|RICHMOND]] *[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]] *[[SABB,St.Andrew,Grenada|SABB]] *[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]] *[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]] *[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]] *[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]] *[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]] *[[SIMON,St.Andrew,Grenada|SIMON]] *[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]] *[[SOUBISE,St.Andrew,Grenada|SOUBISE]] *[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]] *[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]] *[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]] *[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]] *[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]] *[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]] *[[TIVOLI,St.Andrew,Grenada|TIVOLI]] *[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]] *[[UNION,St.Andrew,Grenada|UNION]] *[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]] *[[THE VILLA,St.Andrew,Grenada|THE VILLA]] *[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]] *[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]] *[[WALKER,St.Andrew,Grenada|WALKER]] *[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]] ==[[St.Mark,Grenada|St.Mark]]== *[[BOCAGE,St.Mark,Grenada|BOCAGE]] *[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]] *[[BONAIR,St.Mark,Grenada|BONAIR]] *[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]] *[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]] *[[COAST GUARD,St.Mark,Grenada|COAST GUARD]] *[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]] *[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]] *[[DARVEY,St.Mark,Grenada|DARVEY]] *[[DE VILLA,St.Mark,Grenada|DE VILLA]] *[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]] *[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]] *[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]] *[[DUQUESNE,St.Mark,Grenada|DUQUESNE]] *[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]] *[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]] *[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]] *[[INDUSTRY,St.Mark,Grenada|INDUSTRY]] *[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]] *[[MARAN,St.Mark,Grenada|MARAN]] *[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]] *[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]] *[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]] *[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]] *[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]] *[[RESOURCE,St.Mark,Grenada|RESOURCE]] *[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]] *[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]] *[[SAMARITAN,St.Mark,Grenada|SAMARITAN]] *[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]] *[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]] *[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]] *[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]] *[[VICTORIA,St.Mark,Grenada|VICTORIA]] *[[WALTHAM,St.Mark,Grenada|WALTHAM]] ==[[St.Patrick,Grenada|St.Patrick]]== *[[BATHWAY,St.Patrick,Grenada|BATHWAY]] *[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]] *[[BELMONT,St.Patrick,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1317</ref> *[[CEDARS,St.Patrick,Grenada|CEDARS]] *[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]] *[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]] *[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]] *[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]] *[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]] *[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]] *[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]] *[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]] *[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]] *[[LA TASTE,St.Patrick,Grenada|LA TASTE]] *[[LEVERA,St.Patrick,Grenada|LEVERA]] *[[MADEYS,St.Patrick,Grenada|MADEYS]] *[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]] *[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]] *[[MARLI,St.Patrick,Grenada|MARLI]] *[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]] *[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]] *[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]] *[[MT. RICH,St.Patrick,Grenada|MT. RICH]] *[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]] *[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]] *[[PLAINS,St.Patrick,Grenada|PLAINS]] *[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]] *[[PROSPECT,St.Patrick,Grenada|PROSPECT]] *[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]] *[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]] *[[RED MUD,St.Patrick,Grenada|RED MUD]] *[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]] *[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]] *[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]] *[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]] *[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]] *[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]] == Uncategorized== *[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]] *[[AFRICA,,Grenada|AFRICA]] *[[APSLEY HILL,,Grenada|APSLEY HILL]] *[[BLUGGO,,Grenada|BLUGGO]] *[[BYWAY,,Grenada|BYWAY]] *[[CELESTE,,Grenada|CELESTE]] *[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]] *[[CHADDEAU,,Grenada|CHADDEAU]] *[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]] *[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]] *[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]] *[[COOPER'S HILL,,Grenada|COOPER'S HILL]] *[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]] *[[DE SILLES,,Grenada|DE SILLES]] *[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]] *[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]] *[[DURRANT ROAD,,Grenada|DURRANT ROAD]] *[[FENCE,,Grenada|FENCE]] *[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]] *[[FIELD STREET,,Grenada|FIELD STREET]] *[[FOUNTAIN,,Grenada|FOUNTAIN]] *[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]] *[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]] *[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]] *[[HENRY STREET,,Grenada|HENRY STREET]] *[[JONES ROAD,,Grenada|JONES ROAD]] *[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]] *[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]] *[[LOWER LAURA,,Grenada|LOWER LAURA]] *[[LYDER,,Grenada|LYDER]] *[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]] *[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]] *[[MALIGNON,,Grenada|MALIGNON]] *[[MARINE VILLA,,Grenada|MARINE VILLA]] *[[MAUCHETTE,,Grenada|MAUCHETTE]] *[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]] *[[MELROSE,,Grenada|MELROSE]] *[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]] *[[MT. ANON,,Grenada|MT. ANON]] *[[MT. CUMMA,,Grenada|MT. CUMMA]] *[[MT. FELIX,,Grenada|MT. FELIX]] *[[MT. PLASIR,,Grenada|MT. PLASIR]] *[[MT. REUIL,,Grenada|MT. REUIL]] *[[MT. RODNEY,,Grenada|MT. RODNEY]] *[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]] *[[MUNRO STREET,,Grenada|MUNRO STREET]] *[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]] *[[NETTLE POINT,,Grenada|NETTLE POINT]] *[[NEW GARDENS,,Grenada|NEW GARDENS]] *[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]] *[[PARK ESTATE,,Grenada|PARK ESTATE]] *[[PENNY RETREAT,,Grenada|PENNY RETREAT]] *[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]] *[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]] *[[SCHOOL LANE,,Grenada|SCHOOL LANE]] *[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]] *[[ST. CYR,,Grenada|ST. CYR]] *[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]] *[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]] *[[TAYBAKAY,,Grenada|TAYBAKAY]] *[[TAYLOR,,Grenada|TAYLOR]] *[[THE SUMMIT,,Grenada|THE SUMMIT]] *[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]] *[[VINEYARD,,Grenada|VINEYARD]] 8e989c84a81e8e598a7c32399cf77db9b9efed37 182 181 2022-07-22T21:43:50Z Wikiricky 1 /* St.Andrew */ added citations wikitext text/x-wiki This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes ==[[St.George,Grenada|St.George]]== *[[ANNANDALE,St.George,Grenada|ANNANDALE]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/100 Annandale Estate - Legacies of British Slavery - UCL]</ref> *[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]] *[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]] *[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]] *[[BEAULIEU,St.George,Grenada|BEAULIEU]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1320 <nowiki>Beaulieu [ Grenada | St George ] - UCL</nowiki>]</ref> *[[BELMONT,St.George,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1290</ref> *[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]] *[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]] *[[BOCA,St.George,Grenada|BOCA]] *[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]] *[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]] *[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]] *[[BRIZAN,St.George,Grenada|BRIZAN]] *[[CAFE,St.George,Grenada|CAFE]] *[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]] *[[CALIVIGNY,St.George,Grenada|CALIVIGNY]] *[[CALLISTE,St.George,Grenada|CALLISTE]] *[[CARENAGE,St.George,Grenada|CARENAGE]] *[[CARRIERE,St.George,Grenada|CARRIERE]] *[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]] *[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]] *[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]] *[[CHERRY HILL,St.George,Grenada|CHERRY HILL]] *[[CHURCH STREET,St.George,Grenada|CHURCH STREET]] *[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]] *[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]] *[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]] *[[CONFER,St.George,Grenada|CONFER]] *[[CONSTANTINE,St.George,Grenada|CONSTANTINE]] *[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]] *[[COX ALLEY,St.George,Grenada|COX ALLEY]] *[[CREIGHTON,St.George,Grenada|CREIGHTON]] *[[CROSS STREET,St.George,Grenada|CROSS STREET]] *[[D'ARBEAU,St.George,Grenada|D'ARBEAU]] *[[DE FAUX,St.George,Grenada|DE FAUX]] *[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]] *[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]] *[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]] *[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]] *[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]] *[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]] *[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]] *[[FONTENOY,St.George,Grenada|FONTENOY]] *[[FORT JUEDY,St.George,Grenada|FORT JUEDY]] *[[FREQUENTE,St.George,Grenada|FREQUENTE]] *[[GOLF COURSE,St.George,Grenada|GOLF COURSE]] *[[GOOD HOPE,St.George,Grenada|GOOD HOPE]] *[[GORE STREET,St.George,Grenada|GORE STREET]] *[[GRAND ANSE,St.George,Grenada|GRAND ANSE]] *[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]] *[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]] *[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]] *[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]] *[[GRAND MAL,St.George,Grenada|GRAND MAL]] *[[GRANTON,St.George,Grenada|GRANTON]] *[[GREEN STREET,St.George,Grenada|GREEN STREET]] *[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]] *[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]] *[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]] *[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]] *[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]] *[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]] *[[HAPPY HILL,St.George,Grenada|HAPPY HILL]] *[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]] *[[HILLS ROAD,St.George,Grenada|HILLS ROAD]] *[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]] *[[HOPE VALE,St.George,Grenada|HOPE VALE]] *[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]] *[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]] *[[JUMBIE,St.George,Grenada|JUMBIE]] *[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]] *[[LA BORIE,St.George,Grenada|LA BORIE]] *[[LA MODE,St.George,Grenada|LA MODE]] *[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]] *[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]] *[[LONG GUTTER,St.George,Grenada|LONG GUTTER]] *[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]] *[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]] *[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]] *[[LUCAS STREET,St.George,Grenada|LUCAS STREET]] *[[MALONEY STREET,St.George,Grenada|MALONEY STREET]] *[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]] *[[MARIAN,St.George,Grenada|MARIAN]] *[[MARKET HILL,St.George,Grenada|MARKET HILL]] *[[MARRAST HILL,St.George,Grenada|MARRAST HILL]] *[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]] *[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]] *[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]] *[[MOLINIERE,St.George,Grenada|MOLINIERE]] *[[MONT TOUTE,St.George,Grenada|MONT TOUTE]] *[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]] *[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]] *[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]] *[[MT. AIRY,St.George,Grenada|MT. AIRY]] *[[MT. GAY,St.George,Grenada|MT. GAY]] *[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]] *[[MT. MORITZ,St.George,Grenada|MT. MORITZ]] *[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]] *[[MT. RUSH,St.George,Grenada|MT. RUSH]] *[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]] *[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]] *[[OLD FORT,St.George,Grenada|OLD FORT]] *[[PADDOCK,St.George,Grenada|PADDOCK]] *[[PARADE,St.George,Grenada|PARADE]] *[[PARK LANE,St.George,Grenada|PARK LANE]] *[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]] *[[PETERSFIELD,St.George,Grenada|PETERSFIELD]] *[[POINT SALINES,St.George,Grenada|POINT SALINES]] *[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]] *[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]] *[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]] *[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]] *[[RIVER ROAD,St.George,Grenada|RIVER ROAD]] *[[ROEBUCK,St.George,Grenada|ROEBUCK]] *[[SANS SOUCI,St.George,Grenada|SANS SOUCI]] *[[SCOTT STREET,St.George,Grenada|SCOTT STREET]] *[[SHENDA,St.George,Grenada|SHENDA]] *[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]] *[[SNUG CORNER,St.George,Grenada|SNUG CORNER]] *[[SPRINGS,St.George,Grenada|SPRINGS]] *[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]] *[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]] *[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]] *[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]] *[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]] *[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]] *[[TEMPE,St.George,Grenada|TEMPE]] *[[TETMUND,St.George,Grenada|TETMUND]] *[[THE BOCAS,St.George,Grenada|THE BOCAS]] *[[THE GREENS,St.George,Grenada|THE GREENS]] *[[THE LIMES,St.George,Grenada|THE LIMES]] *[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]] *[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]] *[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]] *[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]] *[[TRUE BLUE,St.George,Grenada|TRUE BLUE]] *[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]] *[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]] *[[TYRREL STREET,St.George,Grenada|TYRREL STREET]] *[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]] *[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]] *[[VENDOME,St.George,Grenada|VENDOME]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1287</ref> *[[WELCOME,St.George,Grenada|WELCOME]] *[[WHITE GUN,St.George,Grenada|WHITE GUN]] *[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]] *[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]] *[[WILLIS,St.George,Grenada|WILLIS]] *[[WOODLANDS,St.George,Grenada|WOODLANDS]] *[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]] *[[YOUNG STREET,St.George,Grenada|YOUNG STREET]] ==[[St.John,Grenada|St.John]]== *[[BACK STREET,St.John,Grenada|BACK STREET]] *[[BELVIDERE,St.John,Grenada|BELVIDERE]] *[[BLACK BAY,St.John,Grenada|BLACK BAY]] *[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]] *[[BROOKLYN,St.John,Grenada|BROOKLYN]] *[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]] *[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]] *[[CLOZIER,St.John,Grenada|CLOZIER]] *[[CONCORD,St.John,Grenada|CONCORD]] *[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]] *[[COTTON BAILY,St.John,Grenada|COTTON BAILY]] *[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]] *[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]] *[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]] *[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]] *[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]] *[[FLORIDA,St.John,Grenada|FLORIDA]] *[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]] *[[GRAND ROY,St.John,Grenada|GRAND ROY]] *[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]] *[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]] *[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]] *[[MARIGOT,St.John,Grenada|MARIGOT]] *[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]] *[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]] *[[MT. GRANBY,St.John,Grenada|MT. GRANBY]] *[[MT. NESBIT,St.John,Grenada|MT. NESBIT]] *[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]] *[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]] *[[PALMISTE,St.John,Grenada|PALMISTE]] *[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]] *[[RENNIE,St.John,Grenada|RENNIE]] *[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]] *[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]] *[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]] *[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]] *[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]] *[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]] *[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]] *[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]] *[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]] *[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]] *[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]] *[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]] *[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]] *[[WATERLOO,St.John,Grenada|WATERLOO]] *[[WOODFORD,St.John,Grenada|WOODFORD]] ==[[St.David,Grenada|St.David]]== *[[APRES TOUTE,St.David,Grenada|APRES TOUTE]] *[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]] *[[BEATON,St.David,Grenada|BEATON]] *[[BELLE ISLE,St.David,Grenada|BELLE ISLE]] *[[BELLE VUE,St.David,Grenada|BELLE VUE]] *[[BOCAGE,St.David,Grenada|BOCAGE]] *[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]] *[[COALS GAPS,St.David,Grenada|COALS GAPS]] *[[CONTENT,St.David,Grenada|CONTENT]] *[[CORINTH,St.David,Grenada|CORINTH]] *[[DUDMAR,St.David,Grenada|DUDMAR]] *[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]] *[[HARMONY HALL,St.David,Grenada|HARMONY HALL]] *[[LA CALOHME,St.David,Grenada|LA CALOHME]] *[[LA FEMME,St.David,Grenada|LA FEMME]] *[[LA FLORETTA,St.David,Grenada|LA FLORETTA]] *[[LA PASTORA,St.David,Grenada|LA PASTORA]] *[[LA SAGESSE,St.David,Grenada|LA SAGESSE]] *[[LA TANTE,St.David,Grenada|LA TANTE]] *[[MARLMOUNT,St.David,Grenada|MARLMOUNT]] *[[MARDIGRAS,St.David,Grenada|MARDIGRAS]] *[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]] *[[MAULTY,St.David,Grenada|MAULTY]] *[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]] *[[MINORCA,St.David,Grenada|MINORCA]] *[[MORNE DELICE,St.David,Grenada|MORNE DELICE]] *[[MON REPOS,St.David,Grenada|MON REPOS]] *[[MT. AGNES,St.David,Grenada|MT. AGNES]] *[[MT. DISIRE,St.David,Grenada|MT. DISIRE]] *[[MT. ROSE,St.David,Grenada|MT. ROSE]] *[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]] *[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]] *[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]] *[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]] *[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]] *[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]] *[[PETITE ETANG,St.David,Grenada|PETITE ETANG]] *[[POMME ROSE,St.David,Grenada|POMME ROSE]] *[[RED GATE,St.David,Grenada|RED GATE]] *[[REDMUD,St.David,Grenada|REDMUD]] *[[REQUIN,St.David,Grenada|REQUIN]] *[[SLINGER STREET,St.David,Grenada|SLINGER STREET]] *[[SYRACUSE,St.David,Grenada|SYRACUSE]] *[[THEBAIDE,St.David,Grenada|THEBAIDE]] *[[TABOR,St.David,Grenada|TABOR]] *[[UPPER LAURA,St.David,Grenada|UPPER LAURA]] *[[VINCENNES,St.David,Grenada|VINCENNES]] *[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]] *[[WINDSOR,St.David,Grenada|WINDSOR]] *[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]] ==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]== *[[BAYALEAU,Carriacou,Grenada|BAYALEAU]] *[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]] *[[BELAIR,Carriacou,Grenada|BELAIR]] *[[BELLE VUE,Carriacou,Grenada|BELLE VUE]] *[[BELMONT,Carriacou,Grenada|BELMONT]] *[[BOGLES,Carriacou,Grenada|BOGLES]] *[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]] *[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]] *[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1385]</ref> *[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]] *[[DOVER,Carriacou,Grenada|DOVER]] *[[DUMFRIES,Carriacou,Grenada|DUMFRIES]] *[[GRAND BAY,Carriacou,Grenada|GRAND BAY]] *[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]] *[[HERMITAGE,Carriacou,Grenada|HERMITAGE]] *[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]] *[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]] *[[LAURISTON,Carriacou,Grenada|LAURISTON]] *[[LIMLAIR,Carriacou,Grenada|LIMLAIR]] *[[MELDRUM,Carriacou,Grenada|MELDRUM]] *[[MT. DISIRE,Carriacou,Grenada|MT. DISIRE]] *[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]] *[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]] *[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]] *[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]] *[[SIX ROADS,Carriacou,Grenada|SIX ROADS]] *[[TOP HILL,Carriacou,Grenada|TOP HILL]] *[[WINDWARD,Carriacou,Grenada|WINDWARD]] *[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]] ==[[St.Andrew,Grenada|St.Andrew]]== *[[MT. FANN,St. Andrew,Grenada|MT. FANN]] *[[ADELPHI,St.Andrew,Grenada|ADELPHI]] *[[AHOMA,St.Andrew,Grenada|AHOMA]] *[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]] *[[BAYROAD,St.Andrew,Grenada|BAYROAD]] *[[BLAIZE,St.Andrew,Grenada|BLAIZE]] *[[BAMBOO,St.Andrew,Grenada|BAMBOO]] *[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]] *[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]] *[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]] *[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]] *[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]] *[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]] *[[BYELANDS,St.Andrew,Grenada|BYELANDS]] *[[CAFE,St.Andrew,Grenada|CAFE]] *[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]] *[[CARRIERE,St.Andrew,Grenada|CARRIERE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1305</ref> *[[CARRUTH,St.Andrew,Grenada|CARRUTH]] *[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]] *[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]] *[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]] *[[CODRONA,St.Andrew,Grenada|CODRONA]] *[[CONFERENCE,St.Andrew,Grenada|CONFERENCE]] *[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]] *[[CROCHU,St.Andrew,Grenada|CROCHU]] *[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]] *[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]] *[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]] *[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]] *[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]] *[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]] *[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]] *[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]] *[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]] *[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]] *[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1303</ref> *[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]] *[[GUPO,St.Andrew,Grenada|GUPO]] *[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]] *[[HERMON,St.Andrew,Grenada|HERMON]] *[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]] *[[HOPE,St.Andrew,Grenada|HOPE]] *[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]] *[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]] *[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]] *[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]] *[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]] *[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]] *[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]] *[[MAHOUT,St.Andrew,Grenada|MAHOUT]] *[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]] *[[MARQUIS,St.Andrew,Grenada|MARQUIS]] *[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]] *[[MEADOW,St.Andrew,Grenada|MEADOW]] *[[MELDRUM,St.Andrew,Grenada|MELDRUM]] *[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]] *[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]] *[[MOYAH,St.Andrew,Grenada|MOYAH]] *[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]] *[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]] *[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]] *[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]] *[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]] *[[MUNICH,St.Andrew,Grenada|MUNICH]] *[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]] *[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]] *[[PARACLETE,St.Andrew,Grenada|PARACLETE]] *[[PARADISE,St.Andrew,Grenada|PARADISE]] *[[PEARLS,St.Andrew,Grenada|PEARLS]] *[[PLATEAU,St.Andrew,Grenada|PLATEAU]] *[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]] *[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]] *[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]] *[[RETREAT,St.Andrew,Grenada|RETREAT]] *[[RICHMOND,St.Andrew,Grenada|RICHMOND]] *[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]] *[[SABB,St.Andrew,Grenada|SABB]] *[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]] *[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]] *[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]] *[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]] *[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]] *[[SIMON,St.Andrew,Grenada|SIMON]] *[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]] *[[SOUBISE,St.Andrew,Grenada|SOUBISE]] *[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]] *[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]] *[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]] *[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]] *[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]] *[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]] *[[TIVOLI,St.Andrew,Grenada|TIVOLI]] *[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]] *[[UNION,St.Andrew,Grenada|UNION]] *[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]] *[[THE VILLA,St.Andrew,Grenada|THE VILLA]] *[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]] *[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]] *[[WALKER,St.Andrew,Grenada|WALKER]] *[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]] ==[[St.Mark,Grenada|St.Mark]]== *[[BOCAGE,St.Mark,Grenada|BOCAGE]] *[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]] *[[BONAIR,St.Mark,Grenada|BONAIR]] *[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]] *[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]] *[[COAST GUARD,St.Mark,Grenada|COAST GUARD]] *[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]] *[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]] *[[DARVEY,St.Mark,Grenada|DARVEY]] *[[DE VILLA,St.Mark,Grenada|DE VILLA]] *[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]] *[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]] *[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]] *[[DUQUESNE,St.Mark,Grenada|DUQUESNE]] *[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]] *[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]] *[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]] *[[INDUSTRY,St.Mark,Grenada|INDUSTRY]] *[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]] *[[MARAN,St.Mark,Grenada|MARAN]] *[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]] *[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]] *[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]] *[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]] *[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]] *[[RESOURCE,St.Mark,Grenada|RESOURCE]] *[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]] *[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]] *[[SAMARITAN,St.Mark,Grenada|SAMARITAN]] *[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]] *[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]] *[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]] *[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]] *[[VICTORIA,St.Mark,Grenada|VICTORIA]] *[[WALTHAM,St.Mark,Grenada|WALTHAM]] ==[[St.Patrick,Grenada|St.Patrick]]== *[[BATHWAY,St.Patrick,Grenada|BATHWAY]] *[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]] *[[BELMONT,St.Patrick,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1317</ref> *[[CEDARS,St.Patrick,Grenada|CEDARS]] *[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]] *[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]] *[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]] *[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]] *[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]] *[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]] *[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]] *[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]] *[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]] *[[LA TASTE,St.Patrick,Grenada|LA TASTE]] *[[LEVERA,St.Patrick,Grenada|LEVERA]] *[[MADEYS,St.Patrick,Grenada|MADEYS]] *[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]] *[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]] *[[MARLI,St.Patrick,Grenada|MARLI]] *[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]] *[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]] *[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]] *[[MT. RICH,St.Patrick,Grenada|MT. RICH]] *[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]] *[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]] *[[PLAINS,St.Patrick,Grenada|PLAINS]] *[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]] *[[PROSPECT,St.Patrick,Grenada|PROSPECT]] *[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]] *[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]] *[[RED MUD,St.Patrick,Grenada|RED MUD]] *[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]] *[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]] *[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]] *[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]] *[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]] *[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]] == Uncategorized== *[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]] *[[AFRICA,,Grenada|AFRICA]] *[[APSLEY HILL,,Grenada|APSLEY HILL]] *[[BLUGGO,,Grenada|BLUGGO]] *[[BYWAY,,Grenada|BYWAY]] *[[CELESTE,,Grenada|CELESTE]] *[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]] *[[CHADDEAU,,Grenada|CHADDEAU]] *[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]] *[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]] *[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]] *[[COOPER'S HILL,,Grenada|COOPER'S HILL]] *[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]] *[[DE SILLES,,Grenada|DE SILLES]] *[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]] *[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]] *[[DURRANT ROAD,,Grenada|DURRANT ROAD]] *[[FENCE,,Grenada|FENCE]] *[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]] *[[FIELD STREET,,Grenada|FIELD STREET]] *[[FOUNTAIN,,Grenada|FOUNTAIN]] *[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]] *[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]] *[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]] *[[HENRY STREET,,Grenada|HENRY STREET]] *[[JONES ROAD,,Grenada|JONES ROAD]] *[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]] *[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]] *[[LOWER LAURA,,Grenada|LOWER LAURA]] *[[LYDER,,Grenada|LYDER]] *[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]] *[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]] *[[MALIGNON,,Grenada|MALIGNON]] *[[MARINE VILLA,,Grenada|MARINE VILLA]] *[[MAUCHETTE,,Grenada|MAUCHETTE]] *[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]] *[[MELROSE,,Grenada|MELROSE]] *[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]] *[[MT. ANON,,Grenada|MT. ANON]] *[[MT. CUMMA,,Grenada|MT. CUMMA]] *[[MT. FELIX,,Grenada|MT. FELIX]] *[[MT. PLASIR,,Grenada|MT. PLASIR]] *[[MT. REUIL,,Grenada|MT. REUIL]] *[[MT. RODNEY,,Grenada|MT. RODNEY]] *[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]] *[[MUNRO STREET,,Grenada|MUNRO STREET]] *[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]] *[[NETTLE POINT,,Grenada|NETTLE POINT]] *[[NEW GARDENS,,Grenada|NEW GARDENS]] *[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]] *[[PARK ESTATE,,Grenada|PARK ESTATE]] *[[PENNY RETREAT,,Grenada|PENNY RETREAT]] *[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]] *[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]] *[[SCHOOL LANE,,Grenada|SCHOOL LANE]] *[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]] *[[ST. CYR,,Grenada|ST. CYR]] *[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]] *[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]] *[[TAYBAKAY,,Grenada|TAYBAKAY]] *[[TAYLOR,,Grenada|TAYLOR]] *[[THE SUMMIT,,Grenada|THE SUMMIT]] *[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]] *[[VINEYARD,,Grenada|VINEYARD]] 1cba0c0b72dd05e9a01ed85c6d4bf57665fb59cb 183 182 2022-07-22T21:52:58Z Wikiricky 1 added upper and lower conference wikitext text/x-wiki This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes ==[[St.George,Grenada|St.George]]== *[[ANNANDALE,St.George,Grenada|ANNANDALE]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/100 Annandale Estate - Legacies of British Slavery - UCL]</ref> *[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]] *[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]] *[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]] *[[BEAULIEU,St.George,Grenada|BEAULIEU]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1320 <nowiki>Beaulieu [ Grenada | St George ] - UCL</nowiki>]</ref> *[[BELMONT,St.George,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1290</ref> *[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]] *[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]] *[[BOCA,St.George,Grenada|BOCA]] *[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]] *[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]] *[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]] *[[BRIZAN,St.George,Grenada|BRIZAN]] *[[CAFE,St.George,Grenada|CAFE]] *[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]] *[[CALIVIGNY,St.George,Grenada|CALIVIGNY]] *[[CALLISTE,St.George,Grenada|CALLISTE]] *[[CARENAGE,St.George,Grenada|CARENAGE]] *[[CARRIERE,St.George,Grenada|CARRIERE]] *[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]] *[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]] *[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]] *[[CHERRY HILL,St.George,Grenada|CHERRY HILL]] *[[CHURCH STREET,St.George,Grenada|CHURCH STREET]] *[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]] *[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]] *[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]] *[[CONFER,St.George,Grenada|CONFER]] *[[CONSTANTINE,St.George,Grenada|CONSTANTINE]] *[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]] *[[COX ALLEY,St.George,Grenada|COX ALLEY]] *[[CREIGHTON,St.George,Grenada|CREIGHTON]] *[[CROSS STREET,St.George,Grenada|CROSS STREET]] *[[D'ARBEAU,St.George,Grenada|D'ARBEAU]] *[[DE FAUX,St.George,Grenada|DE FAUX]] *[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]] *[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]] *[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]] *[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]] *[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]] *[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]] *[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]] *[[FONTENOY,St.George,Grenada|FONTENOY]] *[[FORT JUEDY,St.George,Grenada|FORT JUEDY]] *[[FREQUENTE,St.George,Grenada|FREQUENTE]] *[[GOLF COURSE,St.George,Grenada|GOLF COURSE]] *[[GOOD HOPE,St.George,Grenada|GOOD HOPE]] *[[GORE STREET,St.George,Grenada|GORE STREET]] *[[GRAND ANSE,St.George,Grenada|GRAND ANSE]] *[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]] *[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]] *[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]] *[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]] *[[GRAND MAL,St.George,Grenada|GRAND MAL]] *[[GRANTON,St.George,Grenada|GRANTON]] *[[GREEN STREET,St.George,Grenada|GREEN STREET]] *[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]] *[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]] *[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]] *[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]] *[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]] *[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]] *[[HAPPY HILL,St.George,Grenada|HAPPY HILL]] *[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]] *[[HILLS ROAD,St.George,Grenada|HILLS ROAD]] *[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]] *[[HOPE VALE,St.George,Grenada|HOPE VALE]] *[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]] *[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]] *[[JUMBIE,St.George,Grenada|JUMBIE]] *[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]] *[[LA BORIE,St.George,Grenada|LA BORIE]] *[[LA MODE,St.George,Grenada|LA MODE]] *[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]] *[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]] *[[LONG GUTTER,St.George,Grenada|LONG GUTTER]] *[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]] *[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]] *[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]] *[[LUCAS STREET,St.George,Grenada|LUCAS STREET]] *[[MALONEY STREET,St.George,Grenada|MALONEY STREET]] *[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]] *[[MARIAN,St.George,Grenada|MARIAN]] *[[MARKET HILL,St.George,Grenada|MARKET HILL]] *[[MARRAST HILL,St.George,Grenada|MARRAST HILL]] *[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]] *[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]] *[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]] *[[MOLINIERE,St.George,Grenada|MOLINIERE]] *[[MONT TOUTE,St.George,Grenada|MONT TOUTE]] *[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]] *[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]] *[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]] *[[MT. AIRY,St.George,Grenada|MT. AIRY]] *[[MT. GAY,St.George,Grenada|MT. GAY]] *[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]] *[[MT. MORITZ,St.George,Grenada|MT. MORITZ]] *[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]] *[[MT. RUSH,St.George,Grenada|MT. RUSH]] *[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]] *[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]] *[[OLD FORT,St.George,Grenada|OLD FORT]] *[[PADDOCK,St.George,Grenada|PADDOCK]] *[[PARADE,St.George,Grenada|PARADE]] *[[PARK LANE,St.George,Grenada|PARK LANE]] *[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]] *[[PETERSFIELD,St.George,Grenada|PETERSFIELD]] *[[POINT SALINES,St.George,Grenada|POINT SALINES]] *[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]] *[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]] *[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]] *[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]] *[[RIVER ROAD,St.George,Grenada|RIVER ROAD]] *[[ROEBUCK,St.George,Grenada|ROEBUCK]] *[[SANS SOUCI,St.George,Grenada|SANS SOUCI]] *[[SCOTT STREET,St.George,Grenada|SCOTT STREET]] *[[SHENDA,St.George,Grenada|SHENDA]] *[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]] *[[SNUG CORNER,St.George,Grenada|SNUG CORNER]] *[[SPRINGS,St.George,Grenada|SPRINGS]] *[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]] *[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]] *[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]] *[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]] *[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]] *[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]] *[[TEMPE,St.George,Grenada|TEMPE]] *[[TETMUND,St.George,Grenada|TETMUND]] *[[THE BOCAS,St.George,Grenada|THE BOCAS]] *[[THE GREENS,St.George,Grenada|THE GREENS]] *[[THE LIMES,St.George,Grenada|THE LIMES]] *[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]] *[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]] *[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]] *[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]] *[[TRUE BLUE,St.George,Grenada|TRUE BLUE]] *[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]] *[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]] *[[TYRREL STREET,St.George,Grenada|TYRREL STREET]] *[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]] *[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]] *[[VENDOME,St.George,Grenada|VENDOME]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1287</ref> *[[WELCOME,St.George,Grenada|WELCOME]] *[[WHITE GUN,St.George,Grenada|WHITE GUN]] *[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]] *[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]] *[[WILLIS,St.George,Grenada|WILLIS]] *[[WOODLANDS,St.George,Grenada|WOODLANDS]] *[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]] *[[YOUNG STREET,St.George,Grenada|YOUNG STREET]] ==[[St.John,Grenada|St.John]]== *[[BACK STREET,St.John,Grenada|BACK STREET]] *[[BELVIDERE,St.John,Grenada|BELVIDERE]] *[[BLACK BAY,St.John,Grenada|BLACK BAY]] *[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]] *[[BROOKLYN,St.John,Grenada|BROOKLYN]] *[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]] *[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]] *[[CLOZIER,St.John,Grenada|CLOZIER]] *[[CONCORD,St.John,Grenada|CONCORD]] *[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]] *[[COTTON BAILY,St.John,Grenada|COTTON BAILY]] *[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]] *[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]] *[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]] *[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]] *[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]] *[[FLORIDA,St.John,Grenada|FLORIDA]] *[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]] *[[GRAND ROY,St.John,Grenada|GRAND ROY]] *[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]] *[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]] *[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]] *[[MARIGOT,St.John,Grenada|MARIGOT]] *[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]] *[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]] *[[MT. GRANBY,St.John,Grenada|MT. GRANBY]] *[[MT. NESBIT,St.John,Grenada|MT. NESBIT]] *[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]] *[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]] *[[PALMISTE,St.John,Grenada|PALMISTE]] *[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]] *[[RENNIE,St.John,Grenada|RENNIE]] *[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]] *[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]] *[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]] *[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]] *[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]] *[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]] *[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]] *[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]] *[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]] *[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]] *[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]] *[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]] *[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]] *[[WATERLOO,St.John,Grenada|WATERLOO]] *[[WOODFORD,St.John,Grenada|WOODFORD]] ==[[St.David,Grenada|St.David]]== *[[APRES TOUTE,St.David,Grenada|APRES TOUTE]] *[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]] *[[BEATON,St.David,Grenada|BEATON]] *[[BELLE ISLE,St.David,Grenada|BELLE ISLE]] *[[BELLE VUE,St.David,Grenada|BELLE VUE]] *[[BOCAGE,St.David,Grenada|BOCAGE]] *[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]] *[[COALS GAPS,St.David,Grenada|COALS GAPS]] *[[CONTENT,St.David,Grenada|CONTENT]] *[[CORINTH,St.David,Grenada|CORINTH]] *[[DUDMAR,St.David,Grenada|DUDMAR]] *[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]] *[[HARMONY HALL,St.David,Grenada|HARMONY HALL]] *[[LA CALOHME,St.David,Grenada|LA CALOHME]] *[[LA FEMME,St.David,Grenada|LA FEMME]] *[[LA FLORETTA,St.David,Grenada|LA FLORETTA]] *[[LA PASTORA,St.David,Grenada|LA PASTORA]] *[[LA SAGESSE,St.David,Grenada|LA SAGESSE]] *[[LA TANTE,St.David,Grenada|LA TANTE]] *[[MARLMOUNT,St.David,Grenada|MARLMOUNT]] *[[MARDIGRAS,St.David,Grenada|MARDIGRAS]] *[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]] *[[MAULTY,St.David,Grenada|MAULTY]] *[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]] *[[MINORCA,St.David,Grenada|MINORCA]] *[[MORNE DELICE,St.David,Grenada|MORNE DELICE]] *[[MON REPOS,St.David,Grenada|MON REPOS]] *[[MT. AGNES,St.David,Grenada|MT. AGNES]] *[[MT. DISIRE,St.David,Grenada|MT. DISIRE]] *[[MT. ROSE,St.David,Grenada|MT. ROSE]] *[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]] *[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]] *[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]] *[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]] *[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]] *[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]] *[[PETITE ETANG,St.David,Grenada|PETITE ETANG]] *[[POMME ROSE,St.David,Grenada|POMME ROSE]] *[[RED GATE,St.David,Grenada|RED GATE]] *[[REDMUD,St.David,Grenada|REDMUD]] *[[REQUIN,St.David,Grenada|REQUIN]] *[[SLINGER STREET,St.David,Grenada|SLINGER STREET]] *[[SYRACUSE,St.David,Grenada|SYRACUSE]] *[[THEBAIDE,St.David,Grenada|THEBAIDE]] *[[TABOR,St.David,Grenada|TABOR]] *[[UPPER LAURA,St.David,Grenada|UPPER LAURA]] *[[VINCENNES,St.David,Grenada|VINCENNES]] *[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]] *[[WINDSOR,St.David,Grenada|WINDSOR]] *[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]] ==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]== *[[BAYALEAU,Carriacou,Grenada|BAYALEAU]] *[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]] *[[BELAIR,Carriacou,Grenada|BELAIR]] *[[BELLE VUE,Carriacou,Grenada|BELLE VUE]] *[[BELMONT,Carriacou,Grenada|BELMONT]] *[[BOGLES,Carriacou,Grenada|BOGLES]] *[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]] *[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]] *[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1385]</ref> *[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]] *[[DOVER,Carriacou,Grenada|DOVER]] *[[DUMFRIES,Carriacou,Grenada|DUMFRIES]] *[[GRAND BAY,Carriacou,Grenada|GRAND BAY]] *[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]] *[[HERMITAGE,Carriacou,Grenada|HERMITAGE]] *[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]] *[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]] *[[LAURISTON,Carriacou,Grenada|LAURISTON]] *[[LIMLAIR,Carriacou,Grenada|LIMLAIR]] *[[MELDRUM,Carriacou,Grenada|MELDRUM]] *[[MT. DISIRE,Carriacou,Grenada|MT. DISIRE]] *[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]] *[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]] *[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]] *[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]] *[[SIX ROADS,Carriacou,Grenada|SIX ROADS]] *[[TOP HILL,Carriacou,Grenada|TOP HILL]] *[[WINDWARD,Carriacou,Grenada|WINDWARD]] *[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]] ==[[St.Andrew,Grenada|St.Andrew]]== *[[MT. FANN,St. Andrew,Grenada|MT. FANN]] *[[ADELPHI,St.Andrew,Grenada|ADELPHI]] *[[AHOMA,St.Andrew,Grenada|AHOMA]] *[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]] *[[BAYROAD,St.Andrew,Grenada|BAYROAD]] *[[BLAIZE,St.Andrew,Grenada|BLAIZE]] *[[BAMBOO,St.Andrew,Grenada|BAMBOO]] *[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]] *[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]] *[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]] *[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]] *[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]] *[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]] *[[BYELANDS,St.Andrew,Grenada|BYELANDS]] *[[CAFE,St.Andrew,Grenada|CAFE]] *[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]] *[[CARRIERE,St.Andrew,Grenada|CARRIERE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1305</ref> *[[CARRUTH,St.Andrew,Grenada|CARRUTH]] *[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]] *[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]] *[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]] *[[CODRONA,St.Andrew,Grenada|CODRONA]] *[[UPPER CONFERENCE,St.Andrew,Grenada|UPPER CONFERENCE]] *[[LOWER CONFERENCE,St.Andrew,Grenada|LOWER CONFERENCE]] *[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]] *[[CROCHU,St.Andrew,Grenada|CROCHU]] *[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]] *[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]] *[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]] *[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]] *[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]] *[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]] *[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]] *[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]] *[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]] *[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]] *[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1303</ref> *[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]] *[[GUPO,St.Andrew,Grenada|GUPO]] *[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]] *[[HERMON,St.Andrew,Grenada|HERMON]] *[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]] *[[HOPE,St.Andrew,Grenada|HOPE]] *[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]] *[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]] *[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]] *[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]] *[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]] *[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]] *[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]] *[[MAHOUT,St.Andrew,Grenada|MAHOUT]] *[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]] *[[MARQUIS,St.Andrew,Grenada|MARQUIS]] *[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]] *[[MEADOW,St.Andrew,Grenada|MEADOW]] *[[MELDRUM,St.Andrew,Grenada|MELDRUM]] *[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]] *[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]] *[[MOYAH,St.Andrew,Grenada|MOYAH]] *[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]] *[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]] *[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]] *[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]] *[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]] *[[MUNICH,St.Andrew,Grenada|MUNICH]] *[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]] *[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]] *[[PARACLETE,St.Andrew,Grenada|PARACLETE]] *[[PARADISE,St.Andrew,Grenada|PARADISE]] *[[PEARLS,St.Andrew,Grenada|PEARLS]] *[[PLATEAU,St.Andrew,Grenada|PLATEAU]] *[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]] *[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]] *[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]] *[[RETREAT,St.Andrew,Grenada|RETREAT]] *[[RICHMOND,St.Andrew,Grenada|RICHMOND]] *[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]] *[[SABB,St.Andrew,Grenada|SABB]] *[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]] *[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]] *[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]] *[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]] *[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]] *[[SIMON,St.Andrew,Grenada|SIMON]] *[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]] *[[SOUBISE,St.Andrew,Grenada|SOUBISE]] *[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]] *[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]] *[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]] *[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]] *[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]] *[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]] *[[TIVOLI,St.Andrew,Grenada|TIVOLI]] *[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]] *[[UNION,St.Andrew,Grenada|UNION]] *[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]] *[[THE VILLA,St.Andrew,Grenada|THE VILLA]] *[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]] *[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]] *[[WALKER,St.Andrew,Grenada|WALKER]] *[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]] ==[[St.Mark,Grenada|St.Mark]]== *[[BOCAGE,St.Mark,Grenada|BOCAGE]] *[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]] *[[BONAIR,St.Mark,Grenada|BONAIR]] *[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]] *[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]] *[[COAST GUARD,St.Mark,Grenada|COAST GUARD]] *[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]] *[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]] *[[DARVEY,St.Mark,Grenada|DARVEY]] *[[DE VILLA,St.Mark,Grenada|DE VILLA]] *[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]] *[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]] *[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]] *[[DUQUESNE,St.Mark,Grenada|DUQUESNE]] *[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]] *[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]] *[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]] *[[INDUSTRY,St.Mark,Grenada|INDUSTRY]] *[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]] *[[MARAN,St.Mark,Grenada|MARAN]] *[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]] *[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]] *[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]] *[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]] *[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]] *[[RESOURCE,St.Mark,Grenada|RESOURCE]] *[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]] *[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]] *[[SAMARITAN,St.Mark,Grenada|SAMARITAN]] *[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]] *[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]] *[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]] *[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]] *[[VICTORIA,St.Mark,Grenada|VICTORIA]] *[[WALTHAM,St.Mark,Grenada|WALTHAM]] ==[[St.Patrick,Grenada|St.Patrick]]== *[[BATHWAY,St.Patrick,Grenada|BATHWAY]] *[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]] *[[BELMONT,St.Patrick,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1317</ref> *[[CEDARS,St.Patrick,Grenada|CEDARS]] *[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]] *[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]] *[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]] *[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]] *[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]] *[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]] *[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]] *[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]] *[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]] *[[LA TASTE,St.Patrick,Grenada|LA TASTE]] *[[LEVERA,St.Patrick,Grenada|LEVERA]] *[[MADEYS,St.Patrick,Grenada|MADEYS]] *[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]] *[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]] *[[MARLI,St.Patrick,Grenada|MARLI]] *[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]] *[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]] *[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]] *[[MT. RICH,St.Patrick,Grenada|MT. RICH]] *[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]] *[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]] *[[PLAINS,St.Patrick,Grenada|PLAINS]] *[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]] *[[PROSPECT,St.Patrick,Grenada|PROSPECT]] *[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]] *[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]] *[[RED MUD,St.Patrick,Grenada|RED MUD]] *[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]] *[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]] *[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]] *[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]] *[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]] *[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]] == Uncategorized== *[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]] *[[AFRICA,,Grenada|AFRICA]] *[[APSLEY HILL,,Grenada|APSLEY HILL]] *[[BLUGGO,,Grenada|BLUGGO]] *[[BYWAY,,Grenada|BYWAY]] *[[CELESTE,,Grenada|CELESTE]] *[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]] *[[CHADDEAU,,Grenada|CHADDEAU]] *[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]] *[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]] *[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]] *[[COOPER'S HILL,,Grenada|COOPER'S HILL]] *[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]] *[[DE SILLES,,Grenada|DE SILLES]] *[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]] *[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]] *[[DURRANT ROAD,,Grenada|DURRANT ROAD]] *[[FENCE,,Grenada|FENCE]] *[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]] *[[FIELD STREET,,Grenada|FIELD STREET]] *[[FOUNTAIN,,Grenada|FOUNTAIN]] *[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]] *[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]] *[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]] *[[HENRY STREET,,Grenada|HENRY STREET]] *[[JONES ROAD,,Grenada|JONES ROAD]] *[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]] *[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]] *[[LOWER LAURA,,Grenada|LOWER LAURA]] *[[LYDER,,Grenada|LYDER]] *[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]] *[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]] *[[MALIGNON,,Grenada|MALIGNON]] *[[MARINE VILLA,,Grenada|MARINE VILLA]] *[[MAUCHETTE,,Grenada|MAUCHETTE]] *[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]] *[[MELROSE,,Grenada|MELROSE]] *[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]] *[[MT. ANON,,Grenada|MT. ANON]] *[[MT. CUMMA,,Grenada|MT. CUMMA]] *[[MT. FELIX,,Grenada|MT. FELIX]] *[[MT. PLASIR,,Grenada|MT. PLASIR]] *[[MT. REUIL,,Grenada|MT. REUIL]] *[[MT. RODNEY,,Grenada|MT. RODNEY]] *[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]] *[[MUNRO STREET,,Grenada|MUNRO STREET]] *[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]] *[[NETTLE POINT,,Grenada|NETTLE POINT]] *[[NEW GARDENS,,Grenada|NEW GARDENS]] *[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]] *[[PARK ESTATE,,Grenada|PARK ESTATE]] *[[PENNY RETREAT,,Grenada|PENNY RETREAT]] *[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]] *[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]] *[[SCHOOL LANE,,Grenada|SCHOOL LANE]] *[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]] *[[ST. CYR,,Grenada|ST. CYR]] *[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]] *[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]] *[[TAYBAKAY,,Grenada|TAYBAKAY]] *[[TAYLOR,,Grenada|TAYLOR]] *[[THE SUMMIT,,Grenada|THE SUMMIT]] *[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]] *[[VINEYARD,,Grenada|VINEYARD]] 686049c7fd4ffe9933abcfe187990dd1ee8eec72 184 183 2022-07-22T23:05:17Z Wikiricky 1 /* St.David */ added citations wikitext text/x-wiki This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes ==[[St.George,Grenada|St.George]]== *[[ANNANDALE,St.George,Grenada|ANNANDALE]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/100 Annandale Estate - Legacies of British Slavery - UCL]</ref> *[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]] *[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]] *[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]] *[[BEAULIEU,St.George,Grenada|BEAULIEU]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1320 <nowiki>Beaulieu [ Grenada | St George ] - UCL</nowiki>]</ref> *[[BELMONT,St.George,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1290</ref> *[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]] *[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]] *[[BOCA,St.George,Grenada|BOCA]] *[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]] *[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]] *[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]] *[[BRIZAN,St.George,Grenada|BRIZAN]] *[[CAFE,St.George,Grenada|CAFE]] *[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]] *[[CALIVIGNY,St.George,Grenada|CALIVIGNY]] *[[CALLISTE,St.George,Grenada|CALLISTE]] *[[CARENAGE,St.George,Grenada|CARENAGE]] *[[CARRIERE,St.George,Grenada|CARRIERE]] *[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]] *[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]] *[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]] *[[CHERRY HILL,St.George,Grenada|CHERRY HILL]] *[[CHURCH STREET,St.George,Grenada|CHURCH STREET]] *[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]] *[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]] *[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]] *[[CONFER,St.George,Grenada|CONFER]] *[[CONSTANTINE,St.George,Grenada|CONSTANTINE]] *[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]] *[[COX ALLEY,St.George,Grenada|COX ALLEY]] *[[CREIGHTON,St.George,Grenada|CREIGHTON]] *[[CROSS STREET,St.George,Grenada|CROSS STREET]] *[[D'ARBEAU,St.George,Grenada|D'ARBEAU]] *[[DE FAUX,St.George,Grenada|DE FAUX]] *[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]] *[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]] *[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]] *[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]] *[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]] *[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]] *[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]] *[[FONTENOY,St.George,Grenada|FONTENOY]] *[[FORT JUEDY,St.George,Grenada|FORT JUEDY]] *[[FREQUENTE,St.George,Grenada|FREQUENTE]] *[[GOLF COURSE,St.George,Grenada|GOLF COURSE]] *[[GOOD HOPE,St.George,Grenada|GOOD HOPE]] *[[GORE STREET,St.George,Grenada|GORE STREET]] *[[GRAND ANSE,St.George,Grenada|GRAND ANSE]] *[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]] *[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]] *[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]] *[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]] *[[GRAND MAL,St.George,Grenada|GRAND MAL]] *[[GRANTON,St.George,Grenada|GRANTON]] *[[GREEN STREET,St.George,Grenada|GREEN STREET]] *[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]] *[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1394</ref> *[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]] *[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]] *[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]] *[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]] *[[HAPPY HILL,St.George,Grenada|HAPPY HILL]] *[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]] *[[HILLS ROAD,St.George,Grenada|HILLS ROAD]] *[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]] *[[HOPE VALE,St.George,Grenada|HOPE VALE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1350</ref> *[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]] *[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]] *[[JUMBIE,St.George,Grenada|JUMBIE]] *[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]] *[[LA BORIE,St.George,Grenada|LA BORIE]] *[[LA MODE,St.George,Grenada|LA MODE]] *[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]] *[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]] *[[LONG GUTTER,St.George,Grenada|LONG GUTTER]] *[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]] *[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]] *[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]] *[[LUCAS STREET,St.George,Grenada|LUCAS STREET]] *[[MALONEY STREET,St.George,Grenada|MALONEY STREET]] *[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]] *[[MARIAN,St.George,Grenada|MARIAN]] *[[MARKET HILL,St.George,Grenada|MARKET HILL]] *[[MARRAST HILL,St.George,Grenada|MARRAST HILL]] *[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]] *[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]] *[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]] *[[MOLINIERE,St.George,Grenada|MOLINIERE]] *[[MONT TOUTE,St.George,Grenada|MONT TOUTE]] *[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]] *[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]] *[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]] *[[MT. AIRY,St.George,Grenada|MT. AIRY]] *[[MT. GAY,St.George,Grenada|MT. GAY]] *[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]] *[[MT. MORITZ,St.George,Grenada|MT. MORITZ]] *[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]] *[[MT. RUSH,St.George,Grenada|MT. RUSH]] *[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]] *[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]] *[[OLD FORT,St.George,Grenada|OLD FORT]] *[[PADDOCK,St.George,Grenada|PADDOCK]] *[[PARADE,St.George,Grenada|PARADE]] *[[PARK LANE,St.George,Grenada|PARK LANE]] *[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]] *[[PETERSFIELD,St.George,Grenada|PETERSFIELD]] *[[POINT SALINES,St.George,Grenada|POINT SALINES]] *[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]] *[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]] *[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]] *[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]] *[[RIVER ROAD,St.George,Grenada|RIVER ROAD]] *[[ROEBUCK,St.George,Grenada|ROEBUCK]] *[[SANS SOUCI,St.George,Grenada|SANS SOUCI]] *[[SCOTT STREET,St.George,Grenada|SCOTT STREET]] *[[SHENDA,St.George,Grenada|SHENDA]] *[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]] *[[SNUG CORNER,St.George,Grenada|SNUG CORNER]] *[[SPRINGS,St.George,Grenada|SPRINGS]] *[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]] *[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]] *[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]] *[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]] *[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]] *[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]] *[[TEMPE,St.George,Grenada|TEMPE]] *[[TETMUND,St.George,Grenada|TETMUND]] *[[THE BOCAS,St.George,Grenada|THE BOCAS]] *[[THE GREENS,St.George,Grenada|THE GREENS]] *[[THE LIMES,St.George,Grenada|THE LIMES]] *[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]] *[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]] *[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]] *[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]] *[[TRUE BLUE,St.George,Grenada|TRUE BLUE]] *[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]] *[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]] *[[TYRREL STREET,St.George,Grenada|TYRREL STREET]] *[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]] *[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]] *[[VENDOME,St.George,Grenada|VENDOME]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1287</ref> *[[WELCOME,St.George,Grenada|WELCOME]] *[[WHITE GUN,St.George,Grenada|WHITE GUN]] *[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]] *[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]] *[[WILLIS,St.George,Grenada|WILLIS]] *[[WOODLANDS,St.George,Grenada|WOODLANDS]] *[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]] *[[YOUNG STREET,St.George,Grenada|YOUNG STREET]] ==[[St.John,Grenada|St.John]]== *[[BACK STREET,St.John,Grenada|BACK STREET]] *[[BELVIDERE,St.John,Grenada|BELVIDERE]] *[[BLACK BAY,St.John,Grenada|BLACK BAY]] *[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]] *[[BROOKLYN,St.John,Grenada|BROOKLYN]] *[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]] *[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]] *[[CLOZIER,St.John,Grenada|CLOZIER]] *[[CONCORD,St.John,Grenada|CONCORD]] *[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]] *[[COTTON BAILY,St.John,Grenada|COTTON BAILY]] *[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]] *[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]] *[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]] *[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]] *[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]] *[[FLORIDA,St.John,Grenada|FLORIDA]] *[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]] *[[GRAND ROY,St.John,Grenada|GRAND ROY]] *[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]] *[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]] *[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]] *[[MARIGOT,St.John,Grenada|MARIGOT]] *[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]] *[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]] *[[MT. GRANBY,St.John,Grenada|MT. GRANBY]] *[[MT. NESBIT,St.John,Grenada|MT. NESBIT]] *[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]] *[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]] *[[PALMISTE,St.John,Grenada|PALMISTE]] *[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]] *[[RENNIE,St.John,Grenada|RENNIE]] *[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]] *[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]] *[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]] *[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]] *[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]] *[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]] *[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]] *[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]] *[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]] *[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]] *[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]] *[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]] *[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]] *[[WATERLOO,St.John,Grenada|WATERLOO]] *[[WOODFORD,St.John,Grenada|WOODFORD]] ==[[St.David,Grenada|St.David]]== *[[APRES TOUTE,St.David,Grenada|APRES TOUTE]] *[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]] *[[BEATON,St.David,Grenada|BEATON]] *[[BELLE ISLE,St.David,Grenada|BELLE ISLE]] *[[BELLE VUE,St.David,Grenada|BELLE VUE]] *[[BOCAGE,St.David,Grenada|BOCAGE]] *[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]] *[[COALS GAPS,St.David,Grenada|COALS GAPS]] *[[CONTENT,St.David,Grenada|CONTENT]] *[[CORINTH,St.David,Grenada|CORINTH]] *[[DUDMAR,St.David,Grenada|DUDMAR]] *[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]] *[[HARMONY HALL,St.David,Grenada|HARMONY HALL]] *[[LA CALOHME,St.David,Grenada|LA CALOHME]] *[[LA FEMME,St.David,Grenada|LA FEMME]] *[[LA FLORETTA,St.David,Grenada|LA FLORETTA]] *[[LA PASTORA,St.David,Grenada|LA PASTORA]] *[[LA SAGESSE,St.David,Grenada|LA SAGESSE]] *[[LA TANTE,St.David,Grenada|LA TANTE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1363</ref> *[[MARLMOUNT,St.David,Grenada|MARLMOUNT]] *[[MARDIGRAS,St.David,Grenada|MARDIGRAS]] *[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]] *[[MAULTY,St.David,Grenada|MAULTY]] *[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]] *[[MINORCA,St.David,Grenada|MINORCA]] *[[MORNE DELICE,St.David,Grenada|MORNE DELICE]] *[[MON REPOS,St.David,Grenada|MON REPOS]] *[[MT. AGNES,St.David,Grenada|MT. AGNES]] *[[MT. DISIRE,St.David,Grenada|MT. DISIRE]] *[[MT. ROSE,St.David,Grenada|MT. ROSE]] *[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]] *[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]] *[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]] *[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]] *[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]] *[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]] *[[PETITE ETANG,St.David,Grenada|PETITE ETANG]] *[[POMME ROSE,St.David,Grenada|POMME ROSE]] *[[RED GATE,St.David,Grenada|RED GATE]] *[[REDMUD,St.David,Grenada|REDMUD]] *[[REQUIN,St.David,Grenada|REQUIN]] *[[SLINGER STREET,St.David,Grenada|SLINGER STREET]] *[[SYRACUSE,St.David,Grenada|SYRACUSE]] *[[THEBAIDE,St.David,Grenada|THEBAIDE]] *[[TABOR,St.David,Grenada|TABOR]] *[[UPPER LAURA,St.David,Grenada|UPPER LAURA]] *[[VINCENNES,St.David,Grenada|VINCENNES]] *[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]] *[[WINDSOR,St.David,Grenada|WINDSOR]] *[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]] ==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]== *[[BAYALEAU,Carriacou,Grenada|BAYALEAU]] *[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]] *[[BELAIR,Carriacou,Grenada|BELAIR]] *[[BELLE VUE,Carriacou,Grenada|BELLE VUE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1237</ref> *[[BELMONT,Carriacou,Grenada|BELMONT]] *[[BOGLES,Carriacou,Grenada|BOGLES]] *[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]] *[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]] *[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1385]</ref> *[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]] *[[DOVER,Carriacou,Grenada|DOVER]] *[[DUMFRIES,Carriacou,Grenada|DUMFRIES]] *[[GRAND BAY,Carriacou,Grenada|GRAND BAY]] *[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]] *[[HERMITAGE,Carriacou,Grenada|HERMITAGE]] *[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]] *[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]] *[[LAURISTON,Carriacou,Grenada|LAURISTON]] *[[LIMLAIR,Carriacou,Grenada|LIMLAIR]] *[[MELDRUM,Carriacou,Grenada|MELDRUM]] *[[MT. DESIRE,Carriacou,Grenada|MT. DESIRE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1237</ref> *[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]] *[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]] *[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]] *[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]] *[[SIX ROADS,Carriacou,Grenada|SIX ROADS]] *[[TOP HILL,Carriacou,Grenada|TOP HILL]] *[[WINDWARD,Carriacou,Grenada|WINDWARD]] *[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]] ==[[St.Andrew,Grenada|St.Andrew]]== *[[MT. FANN,St. Andrew,Grenada|MT. FANN]] *[[ADELPHI,St.Andrew,Grenada|ADELPHI]] *[[AHOMA,St.Andrew,Grenada|AHOMA]] *[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]] *[[BAYROAD,St.Andrew,Grenada|BAYROAD]] *[[BLAIZE,St.Andrew,Grenada|BLAIZE]] *[[BAMBOO,St.Andrew,Grenada|BAMBOO]] *[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]] *[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]] *[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]] *[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]] *[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]] *[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]] *[[BYELANDS,St.Andrew,Grenada|BYELANDS]] *[[CAFE,St.Andrew,Grenada|CAFE]] *[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]] *[[CARRIERE,St.Andrew,Grenada|CARRIERE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1305</ref> *[[CARRUTH,St.Andrew,Grenada|CARRUTH]] *[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]] *[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]] *[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]] *[[CODRONA,St.Andrew,Grenada|CODRONA]] *[[UPPER CONFERENCE,St.Andrew,Grenada|UPPER CONFERENCE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1306</ref> *[[LOWER CONFERENCE,St.Andrew,Grenada|LOWER CONFERENCE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1307</ref> *[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]] *[[CROCHU,St.Andrew,Grenada|CROCHU]] *[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]] *[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]] *[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]] *[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]] *[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]] *[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]] *[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]] *[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]] *[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]] *[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]] *[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1303</ref> *[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]] *[[GUPO,St.Andrew,Grenada|GUPO]] *[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]] *[[HERMON,St.Andrew,Grenada|HERMON]] *[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]] *[[HOPE,St.Andrew,Grenada|HOPE]] *[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]] *[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]] *[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]] *[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/13121</ref> *[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]] *[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]] *[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]] *[[MAHOUT,St.Andrew,Grenada|MAHOUT]] *[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]] *[[MARQUIS,St.Andrew,Grenada|MARQUIS]] *[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]] *[[MEADOW,St.Andrew,Grenada|MEADOW]] *[[MELDRUM,St.Andrew,Grenada|MELDRUM]] *[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]] *[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]] *[[MOYAH,St.Andrew,Grenada|MOYAH]] *[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]] *[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]] *[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]] *[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]] *[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]] *[[MUNICH,St.Andrew,Grenada|MUNICH]] *[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]] *[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]] *[[PARACLETE,St.Andrew,Grenada|PARACLETE]] *[[PARADISE,St.Andrew,Grenada|PARADISE]] *[[PEARLS,St.Andrew,Grenada|PEARLS]] *[[PLATEAU,St.Andrew,Grenada|PLATEAU]] *[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/99</ref> *[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]] *[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]] *[[RETREAT,St.Andrew,Grenada|RETREAT]] *[[RICHMOND,St.Andrew,Grenada|RICHMOND]] *[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]] *[[SABB,St.Andrew,Grenada|SABB]] *[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]] *[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]] *[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]] *[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]] *[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]] *[[SIMON,St.Andrew,Grenada|SIMON]] *[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]] *[[SOUBISE,St.Andrew,Grenada|SOUBISE]] *[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]] *[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]] *[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]] *[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]] *[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]] *[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]] *[[TIVOLI,St.Andrew,Grenada|TIVOLI]] *[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]] *[[UNION,St.Andrew,Grenada|UNION]] *[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]] *[[THE VILLA,St.Andrew,Grenada|THE VILLA]] *[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]] *[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]] *[[WALKER,St.Andrew,Grenada|WALKER]] *[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]] ==[[St.Mark,Grenada|St.Mark]]== *[[BOCAGE,St.Mark,Grenada|BOCAGE]] *[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]] *[[BONAIR,St.Mark,Grenada|BONAIR]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1366</ref> *[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]] *[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]] *[[COAST GUARD,St.Mark,Grenada|COAST GUARD]] *[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]] *[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]] *[[DARVEY,St.Mark,Grenada|DARVEY]] *[[DE VILLA,St.Mark,Grenada|DE VILLA]] *[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]] *[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]] *[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]] *[[DUQUESNE,St.Mark,Grenada|DUQUESNE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1367</ref> *[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]] *[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]] *[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]] *[[INDUSTRY,St.Mark,Grenada|INDUSTRY]] *[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]] *[[MARAN,St.Mark,Grenada|MARAN]] *[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]] *[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]] *[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]] *[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]] *[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]] *[[RESOURCE,St.Mark,Grenada|RESOURCE]] *[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]] *[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]] *[[SAMARITAN,St.Mark,Grenada|SAMARITAN]] *[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]] *[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]] *[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]] *[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]] *[[VICTORIA,St.Mark,Grenada|VICTORIA]] *[[WALTHAM,St.Mark,Grenada|WALTHAM]] ==[[St.Patrick,Grenada|St.Patrick]]== *[[BATHWAY,St.Patrick,Grenada|BATHWAY]] *[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]] *[[BELMONT,St.Patrick,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1317</ref> *[[CEDARS,St.Patrick,Grenada|CEDARS]] *[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]] *[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]] *[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]] *[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]] *[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]] *[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]] *[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]] *[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]] *[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]] *[[LA TASTE,St.Patrick,Grenada|LA TASTE]] *[[LEVERA,St.Patrick,Grenada|LEVERA]] *[[MADEYS,St.Patrick,Grenada|MADEYS]] *[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]] *[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]] *[[MARLI,St.Patrick,Grenada|MARLI]] *[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]] *[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]] *[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]] *[[MT. RICH,St.Patrick,Grenada|MT. RICH]] *[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]] *[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]] *[[PLAINS,St.Patrick,Grenada|PLAINS]] *[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]] *[[PROSPECT,St.Patrick,Grenada|PROSPECT]] *[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]] *[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]] *[[RED MUD,St.Patrick,Grenada|RED MUD]] *[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]] *[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]] *[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]] *[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]] *[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]] *[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]] == Uncategorized== *[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]] *[[AFRICA,,Grenada|AFRICA]] *[[APSLEY HILL,,Grenada|APSLEY HILL]] *[[BLUGGO,,Grenada|BLUGGO]] *[[BYWAY,,Grenada|BYWAY]] *[[CELESTE,,Grenada|CELESTE]] *[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]] *[[CHADDEAU,,Grenada|CHADDEAU]] *[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]] *[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]] *[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]] *[[COOPER'S HILL,,Grenada|COOPER'S HILL]] *[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]] *[[DE SILLES,,Grenada|DE SILLES]] *[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]] *[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]] *[[DURRANT ROAD,,Grenada|DURRANT ROAD]] *[[FENCE,,Grenada|FENCE]] *[[FERGUSONS LANE, GOUYAVE,,Grenada|FERGUSONS LANE, GOUYAVE]] *[[FIELD STREET,,Grenada|FIELD STREET]] *[[FOUNTAIN,,Grenada|FOUNTAIN]] *[[GLEBE LAND, SAUTEURS,,Grenada|GLEBE LAND, SAUTEURS]] *[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]] *[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]] *[[HENRY STREET,,Grenada|HENRY STREET]] *[[JONES ROAD,,Grenada|JONES ROAD]] *[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]] *[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]] *[[LOWER LAURA,,Grenada|LOWER LAURA]] *[[LYDER,,Grenada|LYDER]] *[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]] *[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]] *[[MALIGNON,,Grenada|MALIGNON]] *[[MARINE VILLA,,Grenada|MARINE VILLA]] *[[MAUCHETTE,,Grenada|MAUCHETTE]] *[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]] *[[MELROSE,,Grenada|MELROSE]] *[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]] *[[MT. ANON,,Grenada|MT. ANON]] *[[MT. CUMMA,,Grenada|MT. CUMMA]] *[[MT. FELIX,,Grenada|MT. FELIX]] *[[MT. PLASIR,,Grenada|MT. PLASIR]] *[[MT. REUIL,,Grenada|MT. REUIL]] *[[MT. RODNEY,,Grenada|MT. RODNEY]] *[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]] *[[MUNRO STREET,,Grenada|MUNRO STREET]] *[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]] *[[NETTLE POINT,,Grenada|NETTLE POINT]] *[[NEW GARDENS,,Grenada|NEW GARDENS]] *[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]] *[[PARK ESTATE,,Grenada|PARK ESTATE]] *[[PENNY RETREAT,,Grenada|PENNY RETREAT]] *[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]] *[[SAUTEURS, MAHOUT,,Grenada|SAUTEURS, MAHOUT]] *[[SCHOOL LANE,,Grenada|SCHOOL LANE]] *[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]] *[[ST. CYR,,Grenada|ST. CYR]] *[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]] *[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]] *[[TAYBAKAY,,Grenada|TAYBAKAY]] *[[TAYLOR,,Grenada|TAYLOR]] *[[THE SUMMIT,,Grenada|THE SUMMIT]] *[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]] *[[VINEYARD,,Grenada|VINEYARD]] 955704b66be6ef1863072f0abecd19022869ec7f 190 184 2024-11-04T23:16:40Z 104.245.95.81 0 wikitext text/x-wiki This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes ==[[St.George,Grenada|St.George]]== *[[ANNANDALE,St.George,Grenada|ANNANDALE]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/100 Annandale Estate - Legacies of British Slavery - UCL]</ref> *[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]] *[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]] *[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]] *[[BEAULIEU,St.George,Grenada|BEAULIEU]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1320 <nowiki>Beaulieu [ Grenada | St George ] - UCL</nowiki>]</ref> *[[BELMONT,St.George,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1290</ref> *[[BLACK FOREST, VENDOME,St.George,Grenada|BLACK FOREST, VENDOME]] *[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]] *[[BOCA,St.George,Grenada|BOCA]] *[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]] *[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]] *[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]] *[[BRIZAN,St.George,Grenada|BRIZAN]] *[[CAFE,St.George,Grenada|CAFE]] *[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]] *[[CALIVIGNY,St.George,Grenada|CALIVIGNY]] *[[CALLISTE,St.George,Grenada|CALLISTE]] *[[CARENAGE,St.George,Grenada|CARENAGE]] *[[CARRIERE,St.George,Grenada|CARRIERE]] *[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]] *[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]] *[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]] *[[CHERRY HILL,St.George,Grenada|CHERRY HILL]] *[[CHURCH STREET,St.George,Grenada|CHURCH STREET]] *[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]] *[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]] *[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]] *[[CONFER,St.George,Grenada|CONFER]] *[[CONSTANTINE,St.George,Grenada|CONSTANTINE]] *[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]] *[[COX ALLEY,St.George,Grenada|COX ALLEY]] *[[CREIGHTON,St.George,Grenada|CREIGHTON]] *[[CROSS STREET,St.George,Grenada|CROSS STREET]] *[[D'ARBEAU,St.George,Grenada|D'ARBEAU]] *[[DE FAUX,St.George,Grenada|DE FAUX]] *[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]] *[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]] *[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]] *[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]] *[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]] *[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]] *[[FENCE,,Grenada|FENCE]] *[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]] *[[FONTENOY,St.George,Grenada|FONTENOY]] *[[FORT JUEDY,St.George,Grenada|FORT JUEDY]] *[[FREQUENTE,St.George,Grenada|FREQUENTE]] *[[GOLF COURSE,St.George,Grenada|GOLF COURSE]] *[[GOOD HOPE,St.George,Grenada|GOOD HOPE]] *[[GORE STREET,St.George,Grenada|GORE STREET]] *[[GRAND ANSE,St.George,Grenada|GRAND ANSE]] *[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]] *[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]] *[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]] *[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]] *[[GRAND MAL,St.George,Grenada|GRAND MAL]] *[[GRANTON,St.George,Grenada|GRANTON]] *[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]] *[[GREEN STREET,St.George,Grenada|GREEN STREET]] *[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]] *[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1394</ref> *[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]] *[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]] *[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]] *[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]] *[[HAPPY HILL,St.George,Grenada|HAPPY HILL]] *[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]] *[[HILLS ROAD,St.George,Grenada|HILLS ROAD]] *[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]] *[[HOPE VALE,St.George,Grenada|HOPE VALE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1350</ref> *[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]] *[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]] *[[JUMBIE,St.George,Grenada|JUMBIE]] *[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]] *[[LA BORIE,St.George,Grenada|LA BORIE]] *[[LA MODE,St.George,Grenada|LA MODE]] *[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]] *[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]] *[[LONG GUTTER,St.George,Grenada|LONG GUTTER]] *[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]] *[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]] *[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]] *[[LUCAS STREET,St.George,Grenada|LUCAS STREET]] *[[MALONEY STREET,St.George,Grenada|MALONEY STREET]] *[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]] *[[MARIAN,St.George,Grenada|MARIAN]] *[[MARKET HILL,St.George,Grenada|MARKET HILL]] *[[MARRAST HILL,St.George,Grenada|MARRAST HILL]] *[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]] *[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]] *[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]] *[[MOLINIERE,St.George,Grenada|MOLINIERE]] *[[MONT TOUTE,St.George,Grenada|MONT TOUTE]] *[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]] *[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]] *[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]] *[[MT. AIRY,St.George,Grenada|MT. AIRY]] *[[MT. GAY,St.George,Grenada|MT. GAY]] *[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]] *[[MT. MORITZ,St.George,Grenada|MT. MORITZ]] *[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]] *[[MT. RUSH,St.George,Grenada|MT. RUSH]] *[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]] *[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]] *[[OLD FORT,St.George,Grenada|OLD FORT]] *[[PADDOCK,St.George,Grenada|PADDOCK]] *[[PARADE,St.George,Grenada|PARADE]] *[[PARK LANE,St.George,Grenada|PARK LANE]] *[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]] *[[PETERSFIELD,St.George,Grenada|PETERSFIELD]] *[[POINT SALINES,St.George,Grenada|POINT SALINES]] *[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]] *[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]] *[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]] *[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]] *[[RIVER ROAD,St.George,Grenada|RIVER ROAD]] *[[ROEBUCK,St.George,Grenada|ROEBUCK]] *[[SANS SOUCI,St.George,Grenada|SANS SOUCI]] *[[SCOTT STREET,St.George,Grenada|SCOTT STREET]] *[[SHENDA,St.George,Grenada|SHENDA]] *[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]] *[[SNUG CORNER,St.George,Grenada|SNUG CORNER]] *[[SPRINGS,St.George,Grenada|SPRINGS]] *[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]] *[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]] *[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]] *[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]] *[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]] *[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]] *[[TEMPE,St.George,Grenada|TEMPE]] *[[TETMUND,St.George,Grenada|TETMUND]] *[[THE BOCAS,St.George,Grenada|THE BOCAS]] *[[THE GREENS,St.George,Grenada|THE GREENS]] *[[THE LIMES,St.George,Grenada|THE LIMES]] *[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]] *[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]] *[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]] *[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]] *[[TRUE BLUE,St.George,Grenada|TRUE BLUE]] *[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]] *[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]] *[[TYRREL STREET,St.George,Grenada|TYRREL STREET]] *[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]] *[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]] *[[VENDOME,St.George,Grenada|VENDOME]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1287</ref> *[[WELCOME,St.George,Grenada|WELCOME]] *[[WHITE GUN,St.George,Grenada|WHITE GUN]] *[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]] *[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]] *[[WILLIS,St.George,Grenada|WILLIS]] *[[WOODLANDS,St.George,Grenada|WOODLANDS]] *[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]] *[[YOUNG STREET,St.George,Grenada|YOUNG STREET]] ==[[St.John,Grenada|St.John]]== *[[BACK STREET,St.John,Grenada|BACK STREET]] *[[BELVIDERE,St.John,Grenada|BELVIDERE]] *[[BLACK BAY,St.John,Grenada|BLACK BAY]] *[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]] *[[BROOKLYN,St.John,Grenada|BROOKLYN]] *[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]] *[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]] *[[CLOZIER,St.John,Grenada|CLOZIER]] *[[CONCORD,St.John,Grenada|CONCORD]] *[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]] *[[COTTON BAILY,St.John,Grenada|COTTON BAILY]] *[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]] *[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]] *[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]] *[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]] *[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]] *[[FLORIDA,St.John,Grenada|FLORIDA]] *[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]] *[[GRAND ROY,St.John,Grenada|GRAND ROY]] *[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]] *[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]] *[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]] *[[MARIGOT,St.John,Grenada|MARIGOT]] *[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]] *[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]] *[[MT. GRANBY,St.John,Grenada|MT. GRANBY]] *[[MT. PLASIR,,Grenada|MT. PLASIR]] *[[MT. NESBIT,St.John,Grenada|MT. NESBIT]] *[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]] *[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]] *[[PALMISTE,St.John,Grenada|PALMISTE]] *[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]] *[[RENNIE,St.John,Grenada|RENNIE]] *[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]] *[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]] *[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]] *[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]] *[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]] *[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]] *[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]] *[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]] *[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]] *[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]] *[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]] *[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]] *[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]] *[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]] *[[WATERLOO,St.John,Grenada|WATERLOO]] *[[WOODFORD,St.John,Grenada|WOODFORD]] ==[[St.David,Grenada|St.David]]== *[[APRES TOUTE,St.David,Grenada|APRES TOUTE]] *[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]] *[[BEATON,St.David,Grenada|BEATON]] *[[BELLE ISLE,St.David,Grenada|BELLE ISLE]] *[[BELLE VUE,St.David,Grenada|BELLE VUE]] *[[BOCAGE,St.David,Grenada|BOCAGE]] *[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]] *[[COALS GAPS,St.David,Grenada|COALS GAPS]] *[[CONTENT,St.David,Grenada|CONTENT]] *[[CORINTH,St.David,Grenada|CORINTH]] *[[DUDMAR,St.David,Grenada|DUDMAR]] *[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]] *[[HARMONY HALL,St.David,Grenada|HARMONY HALL]] *[[LA CALOHME,St.David,Grenada|LA CALOHME]] *[[LA FEMME,St.David,Grenada|LA FEMME]] *[[LA FLORETTA,St.David,Grenada|LA FLORETTA]] *[[LA PASTORA,St.David,Grenada|LA PASTORA]] *[[LA SAGESSE,St.David,Grenada|LA SAGESSE]] *[[LA TANTE,St.David,Grenada|LA TANTE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1363</ref> *[[MARLMOUNT,St.David,Grenada|MARLMOUNT]] *[[MARDIGRAS,St.David,Grenada|MARDIGRAS]] *[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]] *[[MAULTY,St.David,Grenada|MAULTY]] *[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]] *[[MINORCA,St.David,Grenada|MINORCA]] *[[MORNE DELICE,St.David,Grenada|MORNE DELICE]] *[[MON REPOS,St.David,Grenada|MON REPOS]] *[[MT. AGNES,St.David,Grenada|MT. AGNES]] *[[MT. DISIRE,St.David,Grenada|MT. DISIRE]] *[[MT. ROSE,St.David,Grenada|MT. ROSE]] *[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]] *[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]] *[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]] *[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]] *[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]] *[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]] *[[PETITE ETANG,St.David,Grenada|PETITE ETANG]] *[[POMME ROSE,St.David,Grenada|POMME ROSE]] *[[RED GATE,St.David,Grenada|RED GATE]] *[[REDMUD,St.David,Grenada|REDMUD]] *[[REQUIN,St.David,Grenada|REQUIN]] *[[SLINGER STREET,St.David,Grenada|SLINGER STREET]] *[[SYRACUSE,St.David,Grenada|SYRACUSE]] *[[THEBAIDE,St.David,Grenada|THEBAIDE]] *[[TABOR,St.David,Grenada|TABOR]] *[[UPPER LAURA,St.David,Grenada|UPPER LAURA]] *[[VINCENNES,St.David,Grenada|VINCENNES]] *[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]] *[[WINDSOR,St.David,Grenada|WINDSOR]] *[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]] ==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]== *[[BAYALEAU,Carriacou,Grenada|BAYALEAU]] *[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]] *[[BELAIR,Carriacou,Grenada|BELAIR]] *[[BELLE VUE,Carriacou,Grenada|BELLE VUE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1237</ref> *[[BELMONT,Carriacou,Grenada|BELMONT]] *[[BOGLES,Carriacou,Grenada|BOGLES]] *[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]] *[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]] *[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1385]</ref> *[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]] *[[DOVER,Carriacou,Grenada|DOVER]] *[[DUMFRIES,Carriacou,Grenada|DUMFRIES]] *[[GRAND BAY,Carriacou,Grenada|GRAND BAY]] *[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]] *[[HERMITAGE,Carriacou,Grenada|HERMITAGE]] *[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]] *[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]] *[[LAURISTON,Carriacou,Grenada|LAURISTON]] *[[LIMLAIR,Carriacou,Grenada|LIMLAIR]] *[[MELDRUM,Carriacou,Grenada|MELDRUM]] *[[MT. DESIRE,Carriacou,Grenada|MT. DESIRE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1237</ref> *[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]] *[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]] *[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]] *[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]] *[[SIX ROADS,Carriacou,Grenada|SIX ROADS]] *[[TOP HILL,Carriacou,Grenada|TOP HILL]] *[[WINDWARD,Carriacou,Grenada|WINDWARD]] *[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]] ==[[St.Andrew,Grenada|St.Andrew]]== *[[MT. FANN,St. Andrew,Grenada|MT. FANN]] *[[ADELPHI,St.Andrew,Grenada|ADELPHI]] *[[AHOMA,St.Andrew,Grenada|AHOMA]] *[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]] *[[BAYROAD,St.Andrew,Grenada|BAYROAD]] *[[BLAIZE,St.Andrew,Grenada|BLAIZE]] *[[BAMBOO,St.Andrew,Grenada|BAMBOO]] *[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]] *[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]] *[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]] *[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]] *[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]] *[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]] *[[BYELANDS,St.Andrew,Grenada|BYELANDS]] *[[CAFE,St.Andrew,Grenada|CAFE]] *[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]] *[[CARRIERE,St.Andrew,Grenada|CARRIERE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1305</ref> *[[CARRUTH,St.Andrew,Grenada|CARRUTH]] *[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]] *[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]] *[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]] *[[CODRONA,St.Andrew,Grenada|CODRONA]] *[[UPPER CONFERENCE,St.Andrew,Grenada|UPPER CONFERENCE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1306</ref> *[[LOWER CONFERENCE,St.Andrew,Grenada|LOWER CONFERENCE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1307</ref> *[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]] *[[CROCHU,St.Andrew,Grenada|CROCHU]] *[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]] *[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]] *[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]] *[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]] *[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]] *[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]] *[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]] *[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]] *[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]] *[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]] *[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1303</ref> *[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]] *[[GUPO,St.Andrew,Grenada|GUPO]] *[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]] *[[HERMON,St.Andrew,Grenada|HERMON]] *[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]] *[[HOPE,St.Andrew,Grenada|HOPE]] *[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]] *[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]] *[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]] *[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/13121</ref> *[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]] *[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]] *[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]] *[[MAHOUT,St.Andrew,Grenada|MAHOUT]] *[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]] *[[MARQUIS,St.Andrew,Grenada|MARQUIS]] *[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]] *[[MEADOW,St.Andrew,Grenada|MEADOW]] *[[MELDRUM,St.Andrew,Grenada|MELDRUM]] *[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]] *[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]] *[[MOYAH,St.Andrew,Grenada|MOYAH]] *[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]] *[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]] *[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]] *[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]] *[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]] *[[MUNICH,St.Andrew,Grenada|MUNICH]] *[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]] *[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]] *[[PARACLETE,St.Andrew,Grenada|PARACLETE]] *[[PARADISE,St.Andrew,Grenada|PARADISE]] *[[PEARLS,St.Andrew,Grenada|PEARLS]] *[[PLATEAU,St.Andrew,Grenada|PLATEAU]] *[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/99</ref> *[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]] *[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]] *[[RETREAT,St.Andrew,Grenada|RETREAT]] *[[RICHMOND,St.Andrew,Grenada|RICHMOND]] *[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]] *[[SABB,St.Andrew,Grenada|SABB]] *[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]] *[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]] *[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]] *[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]] *[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]] *[[SIMON,St.Andrew,Grenada|SIMON]] *[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]] *[[SOUBISE,St.Andrew,Grenada|SOUBISE]] *[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]] *[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]] *[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]] *[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]] *[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]] *[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]] *[[TIVOLI,St.Andrew,Grenada|TIVOLI]] *[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]] *[[UNION,St.Andrew,Grenada|UNION]] *[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]] *[[THE VILLA,St.Andrew,Grenada|THE VILLA]] *[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]] *[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]] *[[WALKER,St.Andrew,Grenada|WALKER]] *[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]] ==[[St.Mark,Grenada|St.Mark]]== *[[BOCAGE,St.Mark,Grenada|BOCAGE]] *[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]] *[[BONAIR,St.Mark,Grenada|BONAIR]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1366</ref> *[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]] *[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]] *[[COAST GUARD,St.Mark,Grenada|COAST GUARD]] *[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]] *[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]] *[[DARVEY,St.Mark,Grenada|DARVEY]] *[[DE VILLA,St.Mark,Grenada|DE VILLA]] *[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]] *[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]] *[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]] *[[DUQUESNE,St.Mark,Grenada|DUQUESNE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1367</ref> *[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]] *[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]] *[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]] *[[INDUSTRY,St.Mark,Grenada|INDUSTRY]] *[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]] *[[MARAN,St.Mark,Grenada|MARAN]] *[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]] *[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]] *[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]] *[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]] *[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]] *[[RESOURCE,St.Mark,Grenada|RESOURCE]] *[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]] *[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]] *[[SAMARITAN,St.Mark,Grenada|SAMARITAN]] *[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]] *[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]] *[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]] *[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]] *[[VICTORIA,St.Mark,Grenada|VICTORIA]] *[[WALTHAM,St.Mark,Grenada|WALTHAM]] ==[[St.Patrick,Grenada|St.Patrick]]== *[[BATHWAY,St.Patrick,Grenada|BATHWAY]] *[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]] *[[BELMONT,St.Patrick,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1317</ref> *[[CEDARS,St.Patrick,Grenada|CEDARS]] *[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]] *[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]] *[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]] *[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]] *[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]] *[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]] *[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]] *[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]] *[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]] *[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]] *[[LA TASTE,St.Patrick,Grenada|LA TASTE]] *[[LEVERA,St.Patrick,Grenada|LEVERA]] *[[MADEYS,St.Patrick,Grenada|MADEYS]] *[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]] *[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]] *[[MARLI,St.Patrick,Grenada|MARLI]] *[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]] *[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]] *[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]] *[[MT. RICH,St.Patrick,Grenada|MT. RICH]] *[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]] *[[MT. REUIL,,Grenada|MT. REUIL]] *[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]] *[[PLAINS,St.Patrick,Grenada|PLAINS]] *[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]] *[[PROSPECT,St.Patrick,Grenada|PROSPECT]] *[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]] *[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]] *[[RED MUD,St.Patrick,Grenada|RED MUD]] *[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]] *[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]] *[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]] *[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]] *[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]] *[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]] == Uncategorized== *[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]] *[[AFRICA,,Grenada|AFRICA]] *[[APSLEY HILL,,Grenada|APSLEY HILL]] *[[BLUGGO,,Grenada|BLUGGO]] *[[BYWAY,,Grenada|BYWAY]] *[[CELESTE,,Grenada|CELESTE]] *[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]] *[[CHADDEAU,,Grenada|CHADDEAU]] *[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]] *[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]] *[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]] *[[COOPER'S HILL,,Grenada|COOPER'S HILL]] *[[DE SILLES,,Grenada|DE SILLES]] *[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]] *[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]] *[[DURRANT ROAD,,Grenada|DURRANT ROAD]] *[[FIELD STREET,,Grenada|FIELD STREET]] *[[FOUNTAIN,,Grenada|FOUNTAIN]] *[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]] *[[HENRY STREET,,Grenada|HENRY STREET]] *[[JONES ROAD,,Grenada|JONES ROAD]] *[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]] *[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]] *[[LOWER LAURA,,Grenada|LOWER LAURA]] *[[LYDER,,Grenada|LYDER]] *[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]] *[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]] *[[MALIGNON,,Grenada|MALIGNON]] *[[MARINE VILLA,,Grenada|MARINE VILLA]] *[[MAUCHETTE,,Grenada|MAUCHETTE]] *[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]] *[[MELROSE,,Grenada|MELROSE]] *[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]] *[[MT. ANON,,Grenada|MT. ANON]] *[[MT. CUMMA,,Grenada|MT. CUMMA]] *[[MT. FELIX,,Grenada|MT. FELIX]] *[[MT. RODNEY,,Grenada|MT. RODNEY]] *[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]] *[[MUNRO STREET,,Grenada|MUNRO STREET]] *[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]] *[[NETTLE POINT,,Grenada|NETTLE POINT]] *[[NEW GARDENS,,Grenada|NEW GARDENS]] *[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]] *[[PARK ESTATE,,Grenada|PARK ESTATE]] *[[PENNY RETREAT,,Grenada|PENNY RETREAT]] *[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]] *[[SCHOOL LANE,,Grenada|SCHOOL LANE]] *[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]] *[[ST. CYR,,Grenada|ST. CYR]] *[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]] *[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]] *[[TAYBAKAY,,Grenada|TAYBAKAY]] *[[TAYLOR,,Grenada|TAYLOR]] *[[THE SUMMIT,,Grenada|THE SUMMIT]] *[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]] *[[VINEYARD,,Grenada|VINEYARD]] e27748f2e3377aa78a3403ccd1796e15037611cd 191 190 2024-11-16T01:04:15Z Wikiricky 1 wikitext text/x-wiki This is a list of populated villages, towns, settlements, and streets in Grenada. Many of the village names in Grenada are based upon the names of plantations. Grenada has 7 Parishes ==[[St.George,Grenada|St.George]]== *[[ANNANDALE,St.George,Grenada|ANNANDALE]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/100 Annandale Estate - Legacies of British Slavery - UCL]</ref> *[[ARCHIBALD AVENUE,St.George,Grenada|ARCHIBALD AVENUE]] *[[BACK STREET, TEMPE,St.George,Grenada|BACK STREET, TEMPE]] *[[BAIN'S ALLEY,St.George,Grenada|BAIN'S ALLEY]] *[[BEAULIEU,St.George,Grenada|BEAULIEU]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1320 <nowiki>Beaulieu [ Grenada | St George ] - UCL</nowiki>]</ref> *[[BELMONT,St.George,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1290</ref> *[[BLACK FOREST, St.George,Grenada|BLACK FOREST]] *[[VENDOME,St.George,Grenada|VENDOME]] *[[BLACKBURN ALLEY,St.George,Grenada|BLACKBURN ALLEY]] *[[BOCA,St.George,Grenada|BOCA]] *[[BON ACCORD ESTATE,St.George,Grenada|BON ACCORD ESTATE]] *[[BOTANICAL GARDENS,St.George,Grenada|BOTANICAL GARDENS]] *[[BRIGG'S ALLEY,St.George,Grenada|BRIGG'S ALLEY]] *[[BRIZAN,St.George,Grenada|BRIZAN]] *[[CAFE,St.George,Grenada|CAFE]] *[[CALABASH ALLEY,St.George,Grenada|CALABASH ALLEY]] *[[CALIVIGNY,St.George,Grenada|CALIVIGNY]] *[[CALLISTE,St.George,Grenada|CALLISTE]] *[[CARENAGE,St.George,Grenada|CARENAGE]] *[[CARRIERE,St.George,Grenada|CARRIERE]] *[[CEMETERY HILL,St.George,Grenada|CEMETERY HILL]] *[[CHANTILLY, TEMPE,St.George,Grenada|CHANTILLY, TEMPE]] *[[CHEMIN RIVER,St.George,Grenada|CHEMIN RIVER]] *[[CHERRY HILL,St.George,Grenada|CHERRY HILL]] *[[CHURCH STREET,St.George,Grenada|CHURCH STREET]] *[[CIRCULAR DRIVE, FREQUENTE,St.George,Grenada|CIRCULAR DRIVE, FREQUENTE]] *[[CLARKES COURT BAY,St.George,Grenada|CLARKES COURT BAY,]] *[[COCOA ROAD, MARIAN,St.George,Grenada|COCOA ROAD, MARIAN]] *[[CONFER,St.George,Grenada|CONFER]] *[[CONSTANTINE,St.George,Grenada|CONSTANTINE]] *[[CORBEAU TOWN,St.George,Grenada|CORBEAU TOWN]] *[[COX ALLEY,St.George,Grenada|COX ALLEY]] *[[CREIGHTON,St.George,Grenada|CREIGHTON]] *[[CROSS STREET,St.George,Grenada|CROSS STREET]] *[[D'ARBEAU,St.George,Grenada|D'ARBEAU]] *[[DE FAUX,St.George,Grenada|DE FAUX]] *[[DEPONTHIEU STREET,St.George,Grenada|DEPONTHIEU STREET]] *[[DE VILLA, BLACKBURN ALLEY,St.George,Grenada|DE VILLA, BLACKBURN ALLEY]] *[[DIXIE, SPRINGS,St.George,Grenada|DIXIE, SPRINGS]] *[[DUSTY HIGHWAY, GRAND ANSE,St.George,Grenada|DUSTY HIGHWAY, GRAND ANSE]] *[[EDGEMOND POINT,St.George,Grenada|EDGEMOND POINT]] *[[FALL EDGE, GRAND ANSE,St.George,Grenada|FALL EDGE, GRAND ANSE]] *[[FENCE,,Grenada|FENCE]] *[[FENTON VILLAGE,St.George,Grenada|FENTON VILLAGE]] *[[FONTENOY,St.George,Grenada|FONTENOY]] *[[FORT JUEDY,St.George,Grenada|FORT JUEDY]] *[[FREQUENTE,St.George,Grenada|FREQUENTE]] *[[GOLF COURSE,St.George,Grenada|GOLF COURSE]] *[[GOOD HOPE,St.George,Grenada|GOOD HOPE]] *[[GORE STREET,St.George,Grenada|GORE STREET]] *[[GRAND ANSE,St.George,Grenada|GRAND ANSE]] *[[GRAND ANSE ESTATE, LANCE AUX,St.George,Grenada|GRAND ANSE ESTATE, LANCE AUX]] *[[GRAND ANSE HOUSING SCHEME,St.George,Grenada|GRAND ANSE HOUSING SCHEME]] *[[GRAND ANSE VALLEY,St.George,Grenada|GRAND ANSE VALLEY]] *[[GRAND ETANG ROAD,St.George,Grenada|GRAND ETANG ROAD]] *[[GRAND MAL,St.George,Grenada|GRAND MAL]] *[[GRANTON,St.George,Grenada|GRANTON]] *[[GRAVEL STREET, VENDOME,,Grenada|GRAVEL STREET, VENDOME]] *[[GREEN STREET,St.George,Grenada|GREEN STREET]] *[[GRENVILLE STREET,St.George,Grenada|GRENVILLE STREET]] *[[GRENVILLE VALE,St.George,Grenada|GRENVILLE VALE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1394</ref> *[[GREY STONE, BELMONT,St.George,Grenada|GREY STONE, BELMONT]] *[[H.A BLAIZE STREET,St.George,Grenada|H.A BLAIZE STREET]] *[[HADDON SMITH STREET,St.George,Grenada|HADDON SMITH STREET]] *[[HALIFAX STREET,St.George,Grenada|HALIFAX STREET]] *[[HAPPY HILL,St.George,Grenada|HAPPY HILL]] *[[HILL TOP, CALIVIGNY,St.George,Grenada|HILL TOP, CALIVIGNY]] *[[HILLS ROAD,St.George,Grenada|HILLS ROAD]] *[[HILLSBOROUGH STREET,St.George,Grenada|HILLSBOROUGH STREET]] *[[HOPE VALE,St.George,Grenada|HOPE VALE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1350</ref> *[[INDEPENDENCE AVENUE,St.George,Grenada|INDEPENDENCE AVENUE]] *[[JEAN ANGLIAS,St.George,Grenada|JEAN ANGLIAS]] *[[JUMBIE,St.George,Grenada|JUMBIE]] *[[KAFE BEAU HILL,St.George,Grenada|KAFE BEAU HILL]] *[[LA BORIE,St.George,Grenada|LA BORIE]] *[[LA MODE,St.George,Grenada|LA MODE]] *[[LAGOON ROAD,St.George,Grenada|LAGOON ROAD]] *[[LANCE AUX EPINES,St.George,Grenada|LANCE AUX EPINES]] *[[LONG GUTTER,St.George,Grenada|LONG GUTTER]] *[[LOWER MORNE JALOUX,St.George,Grenada|LOWER MORNE JALOUX]] *[[LOWER WOBURN,St.George,Grenada|LOWER WOBURN]] *[[LOWTHER'S LANE,St.George,Grenada|LOWTHER'S LANE]] *[[LUCAS STREET,St.George,Grenada|LUCAS STREET]] *[[MALONEY STREET,St.George,Grenada|MALONEY STREET]] *[[MANGO, NEW HAMPSHIRE,St.George,Grenada|MANGO, NEW HAMPSHIRE]] *[[MARIAN,St.George,Grenada|MARIAN]] *[[MARKET HILL,St.George,Grenada|MARKET HILL]] *[[MARRAST HILL,St.George,Grenada|MARRAST HILL]] *[[MAURICE BISHOP HIGHWAY, GRAND ANSE,St.George,Grenada|MAURICE BISHOP HIGHWAY, GRAND ANSE]] *[[MAURICE BISHOP HWY, GRAND,St.George,Grenada|MAURICE BISHOP HWY, GRAND]] *[[MELVILLE STREET,St.George,Grenada|MELVILLE STREET]] *[[MOLINIERE,St.George,Grenada|MOLINIERE]] *[[MONT TOUTE,St.George,Grenada|MONT TOUTE]] *[[MORNE JALOUX,St.George,Grenada|MORNE JALOUX]] *[[MORNE ROUGE,St.George,Grenada|MORNE ROUGE]] *[[MORTLEY ROAD,St.George,Grenada|MORTLEY ROAD]] *[[MT. AIRY,St.George,Grenada|MT. AIRY]] *[[MT. GAY,St.George,Grenada|MT. GAY]] *[[MT. HARTMAN,St.George,Grenada|MT. HARTMAN]] *[[MT. MORITZ,St.George,Grenada|MT. MORITZ]] *[[MT. PARNASSUS,St.George,Grenada|MT. PARNASSUS]] *[[MT. RUSH,St.George,Grenada|MT. RUSH]] *[[MT. WHELDALE,St.George,Grenada|MT. WHELDALE]] *[[OBSERVATORY ROAD,St.George,Grenada|OBSERVATORY ROAD]] *[[OLD FORT,St.George,Grenada|OLD FORT]] *[[PADDOCK,St.George,Grenada|PADDOCK]] *[[PARADE,St.George,Grenada|PARADE]] *[[PARK LANE,St.George,Grenada|PARK LANE]] *[[PERSEVERANCE,St.George,Grenada|PERSEVERANCE]] *[[PETERSFIELD,St.George,Grenada|PETERSFIELD]] *[[POINT SALINES,St.George,Grenada|POINT SALINES]] *[[QUEEN'S PARK,St.George,Grenada|QUEEN'S PARK]] *[[RADIX, MT. PARNASSUS,St.George,Grenada|RADIX, MT. PARNASSUS]] *[[RAVINE, MT. GAY,St.George,Grenada|RAVINE, MT. GAY]] *[[RICHMOND HILL,St.George,Grenada|RICHMOND HILL]] *[[RIVER ROAD,St.George,Grenada|RIVER ROAD]] *[[ROEBUCK,St.George,Grenada|ROEBUCK]] *[[SANS SOUCI,St.George,Grenada|SANS SOUCI]] *[[SCOTT STREET,St.George,Grenada|SCOTT STREET]] *[[SHENDA,St.George,Grenada|SHENDA]] *[[SIMMONS STREET,St.George,Grenada|SIMMONS STREET]] *[[SNUG CORNER,St.George,Grenada|SNUG CORNER]] *[[SPRINGS,St.George,Grenada|SPRINGS]] *[[ST. GEORGE ESTATE,St.George,Grenada|ST. GEORGE ESTATE]] *[[ST. JOHN STREET,St.George,Grenada|ST. JOHN STREET]] *[[ST. JUILLE STREET,St.George,Grenada|ST. JUILLE STREET]] *[[ST.PAUL'S,St.George,Grenada|ST.PAUL'S]] *[[SUNSET VALLEY, POINT SALINES,St.George,Grenada|SUNSET VALLEY, POINT SALINES]] *[[TANTEEN, TANTEEN TERRACE,St.George,Grenada|TANTEEN, TANTEEN TERRACE]] *[[TEMPE,St.George,Grenada|TEMPE]] *[[TETMUND,St.George,Grenada|TETMUND]] *[[THE BOCAS,St.George,Grenada|THE BOCAS]] *[[THE GREENS,St.George,Grenada|THE GREENS]] *[[THE LIMES,St.George,Grenada|THE LIMES]] *[[THE STONES, GRAND ANSE,St.George,Grenada|THE STONES, GRAND ANSE]] *[[THE STONES, NEW HAMPSHIRE,St.George,Grenada|THE STONES, NEW HAMPSHIRE]] *[[THE VILLA, LONG GUTTER,St.George,Grenada|THE VILLA, LONG GUTTER]] *[[TRANQUIL LANE,St.George,Grenada|TRANQUIL LANE]] *[[TRUE BLUE,St.George,Grenada|TRUE BLUE]] *[[TRYNE ALLEY,St.George,Grenada|TRYNE ALLEY]] *[[TURTLE BACK DRIVE, LANCE AUX,St.George,Grenada|TURTLE BACK DRIVE, LANCE AUX]] *[[TYRREL STREET,St.George,Grenada|TYRREL STREET]] *[[UPPER MORNE JALOUX,St.George,Grenada|UPPER MORNE JALOUX]] *[[UPPER WOBURN,St.George,Grenada|UPPER WOBURN]] *[[VENDOME,St.George,Grenada|VENDOME]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1287</ref> *[[WELCOME,St.George,Grenada|WELCOME]] *[[WHITE GUN,St.George,Grenada|WHITE GUN]] *[[WHITE HALL, PARK LANE,St.George,Grenada|WHITE HALL, PARK LANE]] *[[WILLIAMSON ROAD,St.George,Grenada|WILLIAMSON ROAD]] *[[WILLIS,St.George,Grenada|WILLIS]] *[[WOODLANDS,St.George,Grenada|WOODLANDS]] *[[WOOLWICH ROAD,St.George,Grenada|WOOLWICH ROAD]] *[[YOUNG STREET,St.George,Grenada|YOUNG STREET]] ==[[St.John,Grenada|St.John]]== *[[BACK STREET,St.John,Grenada|BACK STREET]] *[[BELVIDERE,St.John,Grenada|BELVIDERE]] *[[BLACK BAY,St.John,Grenada|BLACK BAY]] *[[BOYKES LANE, GOUYAVE,St.John,Grenada|BOYKES LANE, GOUYAVE]] *[[BROOKLYN,St.John,Grenada|BROOKLYN]] *[[BROTHERS ESTATE,St.John,Grenada|BROTHERS ESTATE]] *[[CENTRAL DEPRADINE STREET,St.John,Grenada|CENTRAL DEPRADINE STREET]] *[[CLOZIER,St.John,Grenada|CLOZIER]] *[[CONCORD,St.John,Grenada|CONCORD]] *[[CORNETS WALK, GOUYAVE,St.John,Grenada|CORNETS WALK, GOUYAVE]] *[[COTTON BAILY,St.John,Grenada|COTTON BAILY]] *[[D LANCE, UPPER DEPRADINE,St.John,Grenada|D LANCE, UPPER DEPRADINE]] *[[DOCTOR BELLE,St.John,Grenada|DOCTOR BELLE]] *[[DOUGALDSTON,St.John,Grenada|DOUGALDSTON]] *[[EDWARD STREET, GOUYAVE,St.John,Grenada|EDWARD STREET, GOUYAVE]] *[[FERGUSON'S LANE,St.John,Grenada|FERGUSON'S LANE]] *[[FLORIDA,St.John,Grenada|FLORIDA]] *[[GOUYAVE ESTATE,St.John,Grenada|GOUYAVE ESTATE]] *[[GRAND ROY,St.John,Grenada|GRAND ROY]] *[[HILLSVIEW, GOUYAVE,St.John,Grenada|HILLSVIEW, GOUYAVE]] *[[LANGTON ROAD, GOUYAVE,St.John,Grenada|LANGTON ROAD, GOUYAVE]] *[[LOWER DEPRADINE STREET,St.John,Grenada|LOWER DEPRADINE STREET]] *[[MARIGOT,St.John,Grenada|MARIGOT]] *[[MITCHELL'S LANE,St.John,Grenada|MITCHELL'S LANE]] *[[MONGO ROAD, GOUYAVE ESTATE,St.John,Grenada|MONGO ROAD, GOUYAVE ESTATE]] *[[MT. GRANBY,St.John,Grenada|MT. GRANBY]] *[[MT. PLASIR,,Grenada|MT. PLASIR]] *[[MT. NESBIT,St.John,Grenada|MT. NESBIT]] *[[NEW STREET, EDWARD STREET,St.John,Grenada|NEW STREET, EDWARD STREET]] *[[NEW STREET, GOUYAVE,St.John,Grenada|NEW STREET, GOUYAVE]] *[[PALMISTE,St.John,Grenada|PALMISTE]] *[[QUEEN STREET, ST. JOHN'S,St.John,Grenada|QUEEN STREET, ST. JOHN'S]] *[[RENNIE,St.John,Grenada|RENNIE]] *[[RIVER LANE, GOUYAVE ESTATE,St.John,Grenada|RIVER LANE, GOUYAVE ESTATE]] *[[RIVER LANE, GOUYAVE,St.John,Grenada|RIVER LANE, GOUYAVE]] *[[ROSEMOUNT,St.John,Grenada|ROSEMOUNT]] *[[SCHOOL LANE, GOUYAVE,St.John,Grenada|SCHOOL LANE, GOUYAVE]] *[[ST BENOIT STREET, GOUYAVE,St.John,Grenada|ST BENOIT STREET, GOUYAVE]] *[[ST DOMINIC STREET, GOUYAVE,St.John,Grenada|ST DOMINIC STREET, GOUYAVE]] *[[ST DOMINIC, GOUYAVE,St.John,Grenada|ST DOMINIC, GOUYAVE]] *[[ST FRANCIS, GOUYAVE,St.John,Grenada|ST FRANCIS, GOUYAVE]] *[[ST PETERS STREET, GOUYAVE,St.John,Grenada|ST PETERS STREET, GOUYAVE]] *[[ST PETERS, GOUYAVE,St.John,Grenada|ST PETERS, GOUYAVE]] *[[ST. FRANCIS STREET,St.John,Grenada|ST. FRANCIS STREET]] *[[ST. PETER STREET,St.John,Grenada|ST. PETER STREET]] *[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[UPPER DEPRADINE, UPPER,St.John,Grenada|UPPER DEPRADINE, UPPER]] *[[UPPER DEPRADINE STREET,St.John,Grenada|UPPER DEPRADINE STREET]] *[[UPPER DEPRADINE, GOUYAVE,St.John,Grenada|UPPER DEPRADINE, GOUYAVE]] *[[VICTORIA ROAD, GOUYAVE,St.John,Grenada|VICTORIA ROAD, GOUYAVE]] *[[VICTORIA STREET,St.John,Grenada|VICTORIA STREET]] *[[WATERLOO,St.John,Grenada|WATERLOO]] *[[WOODFORD,St.John,Grenada|WOODFORD]] ==[[St.David,Grenada|St.David]]== *[[APRES TOUTE,St.David,Grenada|APRES TOUTE]] *[[BAILLES BACOLET,St.David,Grenada|BAILLES BACOLET]] *[[BEATON,St.David,Grenada|BEATON]] *[[BELLE ISLE,St.David,Grenada|BELLE ISLE]] *[[BELLE VUE,St.David,Grenada|BELLE VUE]] *[[BOCAGE,St.David,Grenada|BOCAGE]] *[[CHAMPFLEURS,St.David,Grenada|CHAMPFLEURS]] *[[COALS GAPS,St.David,Grenada|COALS GAPS]] *[[CONTENT,St.David,Grenada|CONTENT]] *[[CORINTH,St.David,Grenada|CORINTH]] *[[DUDMAR,St.David,Grenada|DUDMAR]] *[[EPPIN FOREST,St.David,Grenada|EPPIN FOREST]] *[[HARMONY HALL,St.David,Grenada|HARMONY HALL]] *[[LA CALOHME,St.David,Grenada|LA CALOHME]] *[[LA FEMME,St.David,Grenada|LA FEMME]] *[[LA FLORETTA,St.David,Grenada|LA FLORETTA]] *[[LA PASTORA,St.David,Grenada|LA PASTORA]] *[[LA SAGESSE,St.David,Grenada|LA SAGESSE]] *[[LA TANTE,St.David,Grenada|LA TANTE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1363</ref> *[[MARLMOUNT,St.David,Grenada|MARLMOUNT]] *[[MARDIGRAS,St.David,Grenada|MARDIGRAS]] *[[MARLMOUNT, GLEBE LAND,St.David,Grenada|MARLMOUNT, GLEBE LAND]] *[[MAULTY,St.David,Grenada|MAULTY]] *[[MAYANN, CONSTANTINE,St.David,Grenada|MAYANN, CONSTANTINE]] *[[MINORCA,St.David,Grenada|MINORCA]] *[[MORNE DELICE,St.David,Grenada|MORNE DELICE]] *[[MON REPOS,St.David,Grenada|MON REPOS]] *[[MT. AGNES,St.David,Grenada|MT. AGNES]] *[[MT. DISIRE,St.David,Grenada|MT. DISIRE]] *[[MT. ROSE,St.David,Grenada|MT. ROSE]] *[[MYANN, CONSTANTINE,St.David,Grenada|MYANN, CONSTANTINE]] *[[NEW WESTERHALL,St.David,Grenada|NEW WESTERHALL]] *[[OLD WESTERHALL,St.David,Grenada|OLD WESTERHALL]] *[[PERDMONTEMPS,St.David,Grenada|PERDMONTEMPS]] *[[PETITE BACAYE, NEW,St.David,Grenada|PETITE BACAYE, NEW]] *[[PETITE ESPERANCE,St.David,Grenada|PETITE ESPERANCE]] *[[PETITE ETANG,St.David,Grenada|PETITE ETANG]] *[[POMME ROSE,St.David,Grenada|POMME ROSE]] *[[RED GATE,St.David,Grenada|RED GATE]] *[[REDMUD,St.David,Grenada|REDMUD]] *[[REQUIN,St.David,Grenada|REQUIN]] *[[SLINGER STREET,St.David,Grenada|SLINGER STREET]] *[[SYRACUSE,St.David,Grenada|SYRACUSE]] *[[THEBAIDE,St.David,Grenada|THEBAIDE]] *[[TABOR,St.David,Grenada|TABOR]] *[[UPPER LAURA,St.David,Grenada|UPPER LAURA]] *[[VINCENNES,St.David,Grenada|VINCENNES]] *[[WESTERHALL POINT,St.David,Grenada|WESTERHALL POINT]] *[[WINDSOR,St.David,Grenada|WINDSOR]] *[[WINDSOR FOREST,St.David,Grenada|WINDSOR FOREST]] ==[[Carriacou and Petite Martinique,Grenada|Carriacou and Petite Martinique]]== *[[BAYALEAU,Carriacou,Grenada|BAYALEAU]] *[[BEAUSEJOUR,Carriacou,Grenada|BEAUSEJOUR]] *[[BELAIR,Carriacou,Grenada|BELAIR]] *[[BELLE VUE,Carriacou,Grenada|BELLE VUE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1237</ref> *[[BELMONT,Carriacou,Grenada|BELMONT]] *[[BOGLES,Carriacou,Grenada|BOGLES]] *[[BRUNSWICK,Carriacou,Grenada|BRUNSWICK]] *[[CHURCH STREET, HILLSBOROUGH,Carriacou,Grenada|CHURCH STREET, HILLSBOROUGH]] *[[CRAIGSTON,Carriacou,Grenada|CRAIGSTON]]<ref>[https://www.ucl.ac.uk/lbs/estate/view/1385]</ref> *[[CHERRY HILL,Carriacou,Grenada|CHERRY HILL]] *[[DOVER,Carriacou,Grenada|DOVER]] *[[DUMFRIES,Carriacou,Grenada|DUMFRIES]] *[[GRAND BAY,Carriacou,Grenada|GRAND BAY]] *[[HARVEY VALE,Carriacou,Grenada|HARVEY VALE]] *[[HERMITAGE,Carriacou,Grenada|HERMITAGE]] *[[HILLSBOROUGH,Carriacou,Grenada|HILLSBOROUGH]] *[[L'ESTERRE,Carriacou,Grenada|L'ESTERRE]] *[[LAURISTON,Carriacou,Grenada|LAURISTON]] *[[LIMLAIR,Carriacou,Grenada|LIMLAIR]] *[[MELDRUM,Carriacou,Grenada|MELDRUM]] *[[MT. DESIRE,Carriacou,Grenada|MT. DESIRE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1237</ref> *[[MT. PLEASANT,Carriacou,Grenada|MT. PLEASANT]] *[[MT. ST ERVANS, L'ESTERRIE,Carriacou,Grenada|MT ST ERVANS, L'ESTERRIE]] *[[MT. ROYAL,Carriacou,Grenada|MT. ROYAL]] *[[PROSPECT HALL,Carriacou,Grenada|PROSPECT HALL]] *[[SIX ROADS,Carriacou,Grenada|SIX ROADS]] *[[TOP HILL,Carriacou,Grenada|TOP HILL]] *[[WINDWARD,Carriacou,Grenada|WINDWARD]] *[[PETITE MARTINIQUE,PETIT MARTINIQUE,Grenada|PETITE MARTINIQUE]] ==[[St.Andrew,Grenada|St.Andrew]]== *[[MT. FANN,St. Andrew,Grenada|MT. FANN]] *[[ADELPHI,St.Andrew,Grenada|ADELPHI]] *[[AHOMA,St.Andrew,Grenada|AHOMA]] *[[BALTHAZAR,St.Andrew,Grenada|BALTHAZAR]] *[[BAYROAD,St.Andrew,Grenada|BAYROAD]] *[[BLAIZE,St.Andrew,Grenada|BLAIZE]] *[[BAMBOO,St.Andrew,Grenada|BAMBOO]] *[[BATTLE HILL,St.Andrew,Grenada|BATTLE HILL]] *[[BEAUREGARD,St.Andrew,Grenada|BEAUREGARD]] *[[BELLE VUE,St.Andrew,Grenada|BELLE VUE]] *[[BELVEDERE,St.Andrew,Grenada|BELVEDERE]] *[[BEN JONES STREET,St.Andrew,Grenada|BEN JONES STREET]] *[[BIRCHGROVE,St.Andrew,Grenada|BIRCHGROVE]] *[[BYELANDS,St.Andrew,Grenada|BYELANDS]] *[[CAFE,St.Andrew,Grenada|CAFE]] *[[CANAL ROAD,St.Andrew,Grenada|CANAL ROAD]] *[[CARRIERE,St.Andrew,Grenada|CARRIERE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1305</ref> *[[CARRUTH,St.Andrew,Grenada|CARRUTH]] *[[CASTIGNE,St.Andrew,Grenada|CASTIGNE]] *[[CHAPEL ROAD,St.Andrew,Grenada|CHAPEL ROAD]] *[[COCOA ROAD,St.Andrew,Grenada|COCOA ROAD]] *[[CODRONA,St.Andrew,Grenada|CODRONA]] *[[UPPER CONFERENCE,St.Andrew,Grenada|UPPER CONFERENCE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1306</ref> *[[LOWER CONFERENCE,St.Andrew,Grenada|LOWER CONFERENCE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1307</ref> *[[COOKHILL ROAD,St.Andrew,Grenada|COOKHILL ROAD]] *[[CROCHU,St.Andrew,Grenada|CROCHU]] *[[DE BLANDEAU,St.Andrew,Grenada|DE BLANDEAU]] *[[DUNFERMLINE,St.Andrew,Grenada|DUNFERMLINE]] *[[DURRANT ROAD,St.Andrew,Grenada|DURRANT ROAD]] *[[FORD HILL ROAD,St.Andrew,Grenada|FORD HILL ROAD]] *[[FELIX PARK,St.Andrew,Grenada|FELIX PARK]] *[[GRANLETTE,St.Andrew,Grenada|GRANLETTE]] *[[GEORGE V. STREET,St.Andrew,Grenada|GEORGE V. STREET]] *[[GLADSTONE ROAD,St.Andrew,Grenada|GLADSTONE ROAD]] *[[GOUYAVE,St.Andrew,Grenada|GOUYAVE]] *[[GRAND BACOLET,St.Andrew,Grenada|GRAND BACOLET]] *[[GRAND BRAS,St.Andrew,Grenada|GRAND BRAS]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1303</ref> *[[GRIFFIN LANE,St.Andrew,Grenada|GRIFFIN LANE]] *[[GUPO,St.Andrew,Grenada|GUPO]] *[[HARFORD VILLAGE,St.Andrew,Grenada|HARFORD VILLAGE]] *[[HERMON,St.Andrew,Grenada|HERMON]] *[[HILLS ROAD, LOWER,St.Andrew,Grenada|HILLS ROAD]] *[[HOPE,St.Andrew,Grenada|HOPE]] *[[HOPE CITY,St.Andrew,Grenada|HOPE CITY]] *[[LA DIGUE,St.Andrew,Grenada|LA DIGUE]] *[[LA FILLETTE,St.Andrew,Grenada|LA FILLETTE]] *[[LA POTERIE,St.Andrew,Grenada|LA POTERIE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/13121</ref> *[[L'ESTERRIE,St.Andrew,Grenada|L'ESTERRIE]] *[[LOWER CAPITOL,St.Andrew,Grenada|LOWER CAPITOL]] *[[LOWER HARFORD VILLAGE,St.Andrew,Grenada|LOWER HARFORD VILLAGE]] *[[MAHOUT,St.Andrew,Grenada|MAHOUT]] *[[MAMMA CANNES,St.Andrew,Grenada|MAMMA CANNES]] *[[MARQUIS,St.Andrew,Grenada|MARQUIS]] *[[MC NELLIE ALLEY, SAUTEURS,St.Andrew,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MC NEILLY, SAUTEURS,St.Andrew,Grenada|MC NEILLY, SAUTEURS]] *[[MEADOW,St.Andrew,Grenada|MEADOW]] *[[MELDRUM,St.Andrew,Grenada|MELDRUM]] *[[MIRABEAU,St.Andrew,Grenada|MIRABEAU]] *[[MORNE LOUNGE,St.Andrew,Grenada|MORNE LOUNGE]] *[[MOYAH,St.Andrew,Grenada|MOYAH]] *[[MT. ST ERVANS, LA DIGUE,St.Andrew,Grenada|MT ST ERVANS, LA DIGUE]] *[[MT. CARMEL,St.Andrew,Grenada|MT. CARMEL]] *[[MT. HORNE,St.Andrew,Grenada|MT. HORNE]] *[[MT. PLEASANT,St.Andrew,Grenada|MT. PLEASANT]] *[[MT. SEALEY,St.Andrew,Grenada|MT. SEALEY]] *[[MUNICH,St.Andrew,Grenada|MUNICH]] *[[NEW HAMPSHIRE,St.Andrew,Grenada|NEW HAMPSHIRE]] *[[NOELSVILLE,St.Andrew,Grenada|NOELSVILLE]] *[[PARACLETE,St.Andrew,Grenada|PARACLETE]] *[[PARADISE,St.Andrew,Grenada|PARADISE]] *[[PEARLS,St.Andrew,Grenada|PEARLS]] *[[PLATEAU,St.Andrew,Grenada|PLATEAU]] *[[PLEASANCE,St.Andrew,Grenada|PLEASANCE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/99</ref> *[[POST ROYAL,St.Andrew,Grenada|POST ROYAL]] *[[PROVIDENCE,St.Andrew,Grenada|PROVIDENCE]] *[[RETREAT,St.Andrew,Grenada|RETREAT]] *[[RICHMOND,St.Andrew,Grenada|RICHMOND]] *[[RIVULET LANE,St.Andrew,Grenada|RIVULET LANE]] *[[SABB,St.Andrew,Grenada|SABB]] *[[SALISBURY ROAD,St.Andrew,Grenada|SALISBURY ROAD]] *[[SAMUEL AVENUE, CALIVIGNY,St.Andrew,Grenada|SAMUEL AVENUE, CALIVIGNY]] *[[SEATON BROWNE STREET,St.Andrew,Grenada|SEATON BROWNE STREET]] *[[SEATON JAMES STREET,St.Andrew,Grenada|SEATON JAMES STREET]] *[[SENDALL STREET,St.Andrew,Grenada|SENDALL STREET]] *[[SIMON,St.Andrew,Grenada|SIMON]] *[[SNELL HALL,St.Andrew,Grenada|SNELL HALL]] *[[SOUBISE,St.Andrew,Grenada|SOUBISE]] *[[SPRING GARDEN,St.Andrew,Grenada|SPRING GARDEN]] *[[ST. CLOUDS,St.Andrew,Grenada|ST. CLOUDS]] *[[ST. JAMES,St.Andrew,Grenada|ST. JAMES]] *[[ST. JOHNS,St.Andrew,Grenada|ST. JOHNS]] *[[TOUS CONGO,St.Andrew,Grenada|TOUS CONGO]] *[[TELESCOPE,St.Andrew,Grenada|TELESCOPE]] *[[TIVOLI,St.Andrew,Grenada|TIVOLI]] *[[TUILLIERIES,St.Andrew,Grenada|TUILLIERIES]] *[[UNION,St.Andrew,Grenada|UNION]] *[[UPPER CAPITOL,St.Andrew,Grenada|UPPER CAPITOL]] *[[THE VILLA,St.Andrew,Grenada|THE VILLA]] *[[VILLAGE ROAD,St.Andrew,Grenada|VILLAGE ROAD]] *[[VICTORIA STREET,St.Andrew,Grenada|VICTORIA STREET]] *[[WALKER,St.Andrew,Grenada|WALKER]] *[[WELLS ROAD,St.Andrew,Grenada|WELLS ROAD]] ==[[St.Mark,Grenada|St.Mark]]== *[[BOCAGE,St.Mark,Grenada|BOCAGE]] *[[BOCAGE, BONAIR,St.Mark,Grenada|BOCAGE, BONAIR]] *[[BONAIR,St.Mark,Grenada|BONAIR]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1366</ref> *[[BONIAR ROAD, BONAIR,St.Mark,Grenada|BONIAR ROAD, BONAIR]] *[[CHARLOTTE VALE,St.Mark,Grenada|CHARLOTTE VALE]] *[[COAST GUARD,St.Mark,Grenada|COAST GUARD]] *[[CRUICKSHANK ROAD,St.Mark,Grenada|CRUICKSHANK ROAD]] *[[CRUICKSHANK ROAD, VICTORIA,St.Mark,Grenada|CRUICKSHANK ROAD, VICTORIA]] *[[DARVEY,St.Mark,Grenada|DARVEY]] *[[DE VILLA,St.Mark,Grenada|DE VILLA]] *[[DIAMOND ESTATE,St.Mark,Grenada|DIAMOND ESTATE]] *[[DIAMOND STREET, VICTORIA,St.Mark,Grenada|DIAMOND STREET, VICTORIA]] *[[DIEGO PIECE,St.Mark,Grenada|DIEGO PIECE]] *[[DUQUESNE,St.Mark,Grenada|DUQUESNE]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1367</ref> *[[FAIR FIELD ROAD, VICTORIA,St.Mark,Grenada|FAIR FIELD ROAD, VICTORIA]] *[[GALL STREET, VICTORIA,St.Mark,Grenada|GALL STREET, VICTORIA]] *[[GROSS POINT, GROSS POINT VILLA,St.Mark,Grenada|GROSS POINT, GROSS POINT VILLA]] *[[INDUSTRY,St.Mark,Grenada|INDUSTRY]] *[[LA RESOURCE,St.Mark,Grenada|LA RESOURCE]] *[[MARAN,St.Mark,Grenada|MARAN]] *[[MT. EDGECOMBE,St.Mark,Grenada|MT. EDGECOMBE]] *[[MUNRO STREET, VICTORIA,St.Mark,Grenada|MUNRO STREET, VICTORIA]] *[[NON-PARIEL,St.Mark,Grenada|NON-PARIEL]] *[[PETIT BOCAGE,St.Mark,Grenada|PETIT BOCAGE]] *[[QUEEN STREET, VICTORIA,St.Mark,Grenada|QUEEN STREET, VICTORIA]] *[[RESOURCE,St.Mark,Grenada|RESOURCE]] *[[RESOURCE, RESOURCE,St.Mark,Grenada|RESOURCE, RESOURCE]] *[[RIVER SALLEE,St.Mark,Grenada|RIVER SALLEE]] *[[SAMARITAN,St.Mark,Grenada|SAMARITAN]] *[[SAMARITAN, DIEGO PIECE,St.Mark,Grenada|SAMARITAN, DIEGO PIECE]] *[[ST DAVID STREET, VICTORIA,St.Mark,Grenada|ST DAVID STREET, VICTORIA]] *[[ST JOHN STREET, VICTORIA,St.Mark,Grenada|ST JOHN STREET, VICTORIA]] *[[STEWAD COTTAGE,St.Mark,Grenada|STEWAD COTTAGE]] *[[VICTORIA,St.Mark,Grenada|VICTORIA]] *[[WALTHAM,St.Mark,Grenada|WALTHAM]] ==[[St.Patrick,Grenada|St.Patrick]]== *[[BATHWAY,St.Patrick,Grenada|BATHWAY]] *[[BAY ROAD, SAUTEURS,St.Patrick,Grenada|BAY ROAD, SAUTEURS]] *[[BELMONT,St.Patrick,Grenada|BELMONT]]<ref>https://www.ucl.ac.uk/lbs/estate/view/1317</ref> *[[CEDARS,St.Patrick,Grenada|CEDARS]] *[[CHANTIMELLE,St.Patrick,Grenada|CHANTIMELLE]] *[[CROSS STREET, SAUTEURS,St.Patrick,Grenada|CROSS STREET, SAUTEURS]] *[[GLEBE LAND, SAUTEURS,St.Patrick,Grenada|GLEBE LAND, SAUTEURS]] *[[GLEBE STREET, SAUTEURS,St.Patrick,Grenada|GLEBE STREET, SAUTEURS]] *[[CORNWALL STREET, SAUTEURS,,Grenada|CORNWALL STREET, SAUTEURS]] *[[HERMITAGE,St.Patrick,Grenada|HERMITAGE]] *[[HIGH GATE, MORNE FENDUE,St.Patrick,Grenada|HIGH GATE, MORNE FENDUE]] *[[HIGH STREET, SAUTEURS,St.Patrick,Grenada|HIGH STREET, SAUTEURS]] *[[HILL STREET, SAUTEURS,St.Patrick,Grenada|HILL STREET, SAUTEURS]] *[[LA FORTUNE,St.Patrick,Grenada|LA FORTUNE]] *[[LA TASTE,St.Patrick,Grenada|LA TASTE]] *[[LEVERA,St.Patrick,Grenada|LEVERA]] *[[MADEYS,St.Patrick,Grenada|MADEYS]] *[[MAHOUT, ROSE HILL,St.Patrick,Grenada|MAHOUT, ROSE HILL]] *[[MAIN STREET, SAUTEURS,St.Patrick,Grenada|MAIN STREET, SAUTEURS]] *[[MARLI,St.Patrick,Grenada|MARLI]] *[[MC NEILLY ALLEY, MARLI,St.Patrick,Grenada|MC NEILLY ALLEY, MARLI]] *[[MC NELLIE ALLEY, SAUTEURS,St.Patrick,Grenada|MC NELLIE ALLEY, SAUTEURS]] *[[MORNE FENDUE,St.Patrick,Grenada|MORNE FENDUE]] *[[MT. CRAVEN,St.Patrick,Grenada|MT. CRAVEN]] *[[MT. RICH,St.Patrick,Grenada|MT. RICH]] *[[MT. ROSE,St.Patrick,Grenada|MT. ROSE]] *[[MT. REUIL,,Grenada|MT. REUIL]] *[[PEGGYS WHIM, HERMITAGE,St.Patrick,Grenada|PEGGYS WHIM, HERMITAGE]] *[[PLAINS,St.Patrick,Grenada|PLAINS]] *[[POINTZFIELD,St.Patrick,Grenada|POINTZFIELD]] *[[PROSPECT,St.Patrick,Grenada|PROSPECT]] *[[RED HEAD STREET, LA FORTUNE,St.Patrick,Grenada|RED HEAD STREET, LA FORTUNE]] *[[RED HEAD STREET, SAUTEURS,St.Patrick,Grenada|RED HEAD STREET, SAUTEURS]] *[[RED MUD,St.Patrick,Grenada|RED MUD]] *[[RIVER SALLEE,St.Patrick,Grenada|RIVER SALLEE]] *[[ROSE HILL,St.Patrick,Grenada|ROSE HILL]] *[[SALISBURY RD, SAUTEURS,St.Patrick,Grenada|SALISBURY RD, SAUTEURS]] *[[SALISBURY STREET, SAUTEURS,St.Patrick,Grenada|SALISBURY STREET, SAUTEURS]] *[[SAUTEURS,St.Patrick,Grenada|SAUTEURS]] *[[THE VILLA, SAUTEURS,St.Patrick,Grenada|THE VILLA, SAUTEURS]] == Uncategorized== *[[ADAM'S ALLEY,,Grenada|ADAM'S ALLEY]] *[[AFRICA,,Grenada|AFRICA]] *[[APSLEY HILL,,Grenada|APSLEY HILL]] *[[BLUGGO,,Grenada|BLUGGO]] *[[BYWAY,,Grenada|BYWAY]] *[[CELESTE,,Grenada|CELESTE]] *[[CENTRAL DEPRADINE, GOUYAVE,,Grenada|CENTRAL DEPRADINE, GOUYAVE]] *[[CHADDEAU,,Grenada|CHADDEAU]] *[[CHANCERY STREET, MUNRO,,Grenada|CHANCERY STREET, MUNRO]] *[[CHAPEL'S LANE,,Grenada|CHAPEL'S LANE]] *[[CHURCH HILL ROAD,,Grenada|CHURCH HILL ROAD]] *[[COOPER'S HILL,,Grenada|COOPER'S HILL]] *[[DE SILLES,,Grenada|DE SILLES]] *[[DEHAR, GLEBE LAND,,Grenada|DEHAR, GLEBE LAND]] *[[DOTHAN ESTATE,,Grenada|DOTHAN ESTATE]] *[[DURRANT ROAD,,Grenada|DURRANT ROAD]] *[[FIELD STREET,,Grenada|FIELD STREET]] *[[FOUNTAIN,,Grenada|FOUNTAIN]] *[[GROSS POINT VILLA,,Grenada|GROSS POINT VILLA]] *[[HENRY STREET,,Grenada|HENRY STREET]] *[[JONES ROAD,,Grenada|JONES ROAD]] *[[LOWER CONFERENCE,,Grenada|LOWER CONFERENCE]] *[[LOWER DEPRADINE, GOUYAVE,,Grenada|LOWER DEPRADINE, GOUYAVE]] *[[LOWER LAURA,,Grenada|LOWER LAURA]] *[[LYDER,,Grenada|LYDER]] *[[MAHOUT, SAUTEURS,,Grenada|MAHOUT, SAUTEURS]] *[[MAIN STREET, SAUTEURS,,Grenada|MAIN STREET, SAUTEURS]] *[[MALIGNON,,Grenada|MALIGNON]] *[[MARINE VILLA,,Grenada|MARINE VILLA]] *[[MAUCHETTE,,Grenada|MAUCHETTE]] *[[MC LAINE ALLEY, SAUTEURS,,Grenada|MC LAINE ALLEY, SAUTEURS]] *[[MELROSE,,Grenada|MELROSE]] *[[MT. ALEXANDER,,Grenada|MT. ALEXANDER]] *[[MT. ANON,,Grenada|MT. ANON]] *[[MT. CUMMA,,Grenada|MT. CUMMA]] *[[MT. FELIX,,Grenada|MT. FELIX]] *[[MT. RODNEY,,Grenada|MT. RODNEY]] *[[MT. WILLIAMS,,Grenada|MT. WILLIAMS]] *[[MUNRO STREET,,Grenada|MUNRO STREET]] *[[MUNROE STREET, VICTORIA,,Grenada|MUNROE STREET, VICTORIA]] *[[NETTLE POINT,,Grenada|NETTLE POINT]] *[[NEW GARDENS,,Grenada|NEW GARDENS]] *[[OTTLEY'S LANE,,Grenada|OTTLEY'S LANE]] *[[PARK ESTATE,,Grenada|PARK ESTATE]] *[[PENNY RETREAT,,Grenada|PENNY RETREAT]] *[[SAMUELS AVENUE,,Grenada|SAMUELS AVENUE]] *[[SCHOOL LANE,,Grenada|SCHOOL LANE]] *[[ST. BENOIT'S STREET,,Grenada|ST. BENOIT'S STREET]] *[[ST. CYR,,Grenada|ST. CYR]] *[[ST. DAVID STREET,,Grenada|ST. DAVID STREET]] *[[ST. DOMINIC'S ST.,,Grenada|ST. DOMINIC'S ST.]] *[[TAYBAKAY,,Grenada|TAYBAKAY]] *[[TAYLOR,,Grenada|TAYLOR]] *[[THE SUMMIT,,Grenada|THE SUMMIT]] *[[THE VILLA, THE ROCK,,Grenada|THE VILLA, THE ROCK]] *[[VINEYARD,,Grenada|VINEYARD]] 284819bb45bf37675cd85a875c96eac660f04a45 Travel to Carriacou and Petite Martinique 0 91 185 2022-10-18T12:05:16Z Wikiricky 1 added new page wikitext text/x-wiki == By Boat == The Osprey Ferry [https://www.ospreylines.com/ see website for fares and schedule] Tyrell Bay Express [https://www.facebook.com/tyrrelbayexpress/ see website for fares and schedule] ea034b91e12f483a148ef8b370cb1371ceacdca5 Seaboot 0 2 186 2 2023-04-28T16:12:03Z Beverly 33 misspelled word wikitext text/x-wiki There are many boats in Grenada. 81378f3baa1e119d2a13d46b4beaf7f3fececd63 National Heroes Day 0 92 187 2023-10-20T09:31:17Z 74.117.87.10 0 page creation wikitext text/x-wiki A national holiday in Grenada to honor the victims of the October 19 1983 events. The first observance of Heroes Day occurred on October 19, 2023, 40 years after the events of October 19 1983. The events of the first celebration was an Ecumenical Service at the national stadium, 1 pm ringing of church bells, and a light tribute at 7pm on the Carenarge. 9072c343d9b81c79dc92d511fc89690cd980da57 188 187 2023-10-20T09:36:49Z Wikiricky 1 added links wikitext text/x-wiki A national holiday in Grenada to honor the victims of the October 19 1983 events. The first observance of Heroes Day occurred on October 19, 2023, 40 years after the events of October 19 1983. The events of the first celebration was an [[Ecumenical Service]] at the [[Grenada National Stadium]], 1 pm ringing of church bells, and a light tribute at 7pm on [[the Carenarge.]] 19e48eb6bdff690c4ae601cad18b7c96e91bddf0 189 188 2023-10-20T09:44:28Z Wikiricky 1 wikitext text/x-wiki {{Infobox holiday |holiday_name = National Heroes Day |type = [[Bank holiday in Grenada]] |scheduling = 19 October |duration = 1 day |month = October |firsttime = 19 October, 2023 }} A national holiday in Grenada to honor the victims of the October 19 1983 events. The first observance of Heroes Day occurred on October 19, 2023, 40 years after the events of October 19 1983. The events of the first celebration was an [[Ecumenical Service]] at the [[Grenada National Stadium]], 1 pm ringing of church bells, and a light tribute at 7pm on [[the Carenarge.]] a7d3b0ecb63e59def2446eb17d3cef297d2a5fcd Beaches in Grenada 0 93 192 2024-11-25T01:57:05Z Kiki 34 Created page with "== Carriacou and Petite Martinique == * Paradise Beach * L'Esterre Beach * Anse La Roche Bay * Petite Carenage * Hillsborough Beach * Sandy Island Beach * Sparrow Bay * Black Sand Beach * Tyrrel Bay == St. Andrew's == * Power Beach La Poterie * Hope Beach * Marquis Beach * La Baye * Telescope Beach * Pearls Beach == St. David == * La Sagesse Beach * David Beach (Davee) == St. George == * Grand Anse Beach * Magazine Beach * Morne Rouge (BBC) Beach * True Blue Bay *..." wikitext text/x-wiki == Carriacou and Petite Martinique == * Paradise Beach * L'Esterre Beach * Anse La Roche Bay * Petite Carenage * Hillsborough Beach * Sandy Island Beach * Sparrow Bay * Black Sand Beach * Tyrrel Bay == St. Andrew's == * Power Beach La Poterie * Hope Beach * Marquis Beach * La Baye * Telescope Beach * Pearls Beach == St. David == * La Sagesse Beach * David Beach (Davee) == St. George == * Grand Anse Beach * Magazine Beach * Morne Rouge (BBC) Beach * True Blue Bay * Mount Pandy Beach * Fort Jeudy Beach * Black Bay Beach * Portici Beach * Grooms Beach * L'Anse Aux Epines Beach * Pink Gin Beach * * [[Category:Carriacou]] [[Category:St.Andrew's]] [[Category:St.David]] [[Category:St.George]] [[Category:St.John]] [[Category:St.Mark]] [[Category:St.Patrick]] [[Category:Petite Martinique]] 67787646e7d57985ddf212bdbc795b19c712a145 193 192 2024-11-25T02:17:09Z Kiki 34 wikitext text/x-wiki == Carriacou and Petite Martinique == * Paradise Beach * L'Esterre Beach * Anse La Roche Bay * Petite Carenage * Hillsborough Beach * Sandy Island Beach * Sparrow Bay * Black Sand Beach * Tyrrel Bay<ref>Our Stories - Grenada Tourism Authority</ref> == St. Andrew's == * Power Beach La Poterie * Hope Beach * Marquis Beach * La Baye * Telescope Beach * Pearls Beach == St. David == * La Sagesse Beach * David Beach (Davee) == St. George == * Grand Anse Beach<ref>Grand Anse Beach - Grenada Tourism Authority</ref> * Grooms Beach<ref>Grooms Beach (Parc a Boeuf) - Grenada Tourism Authority</ref> * Magazine Beach * Morne Rouge (BBC) Beach * True Blue Bay * Mount Pandy Beach * Fort Jeudy Beach * Black Bay Beach * Portici Beach * L'Anse Aux Epines Beach<ref>Lance Aux Epines Beach - Grenada Tourism Authority</ref> * Pink Gin Beach * [[Category:Carriacou]] [[Category:St.Andrew's]] [[Category:St.David]] [[Category:St.George]] [[Category:St.John]] [[Category:St.Mark]] [[Category:St.Patrick]] [[Category:Petite Martinique]] 6870a86398228fb86b0fd1477a5e93e551234e31 194 193 2024-11-25T02:37:50Z Kiki 34 /* Carriacou and Petite Martinique */ wikitext text/x-wiki == Carriacou and Petite Martinique == * Paradise Beach<ref>Paradise Beach - Grenada Tourism Authority</ref> * L'Esterre Beach * Anse La Roche Bay<ref>Anse La Roche - Grenada Tourism Authority</ref> * Petite Carenage * Hillsborough Beach * Sandy Island Beach * Sparrow Bay * Black Sand Beach * Tyrrel Bay<ref>Our Stories - Grenada Tourism Authority</ref> == St. Andrew's == * Power Beach La Poterie * Hope Beach * Marquis Beach * La Baye * Telescope Beach * Pearls Beach == St. David == * La Sagesse Beach * David Beach (Davee) == St. George == * Grand Anse Beach<ref>Grand Anse Beach - Grenada Tourism Authority</ref> * Grooms Beach<ref>Grooms Beach (Parc a Boeuf) - Grenada Tourism Authority</ref> * Benji Bay Woburn * Magazine Beach * Morne Rouge (BBC) Beach * True Blue Bay * Mount Pandy Beach * Fort Jeudy Beach * Black Bay Beach * Portici Beach * L'Anse Aux Epines Beach<ref>Lance Aux Epines Beach - Grenada Tourism Authority</ref> * Pink Gin Beach == St Patrick == * Levera Beach * Sauteurs Beach * Bathway Beach 95def5c7ca327bc6477c727f3daea3accf98d3ae 197 194 2024-11-26T02:56:29Z 104.245.95.82 0 wikitext text/x-wiki == Carriacou and Petite Martinique == * Paradise Beach<ref>Paradise Beach - Grenada Tourism Authority</ref> * L 'Esterre Beach * Anse La Roche Bay<ref>Anse La Roche - Grenada Tourism Authority</ref> * Petite Carenage * Hillsborough Beach * Sandy Island Beach * Sparrow Bay * Black Sand Beach * Tyrrel Bay<ref>Our Stories - Grenada Tourism Authority</ref> * Sanchez Beach == St. Andrew's == * Power Beach La Porterie * Hope Beach * Marquis Beach * La Baye * Telescope Beach * Pearls Beach == St. David == * La Sagesse Beach <ref>La Sagesse Beach - Grenada Tourism Authority</ref> * David Beach (Davee) * Petite Bacolet Bay == St. George == * Grand Anse Beach<ref>Grand Anse Beach - Grenada Tourism Authority</ref> * Grooms Beach<ref>Grooms Beach (Parc a Boeuf) - Grenada Tourism Authority</ref> * Benji Bay Woburn * Grand Mal Bay * Magazine Beach * Morne Rouge (BBC) Beach * True Blue Bay * Mount Pandy Beach * Fort Jeudy Beach * Black Bay Beach * Portici Beach * L'Anse Aux Epines Beach<ref>Lance Aux Epines Beach - Grenada Tourism Authority</ref> * Pink Gin Beach == St.Marks == * Duquesne Bay == St Patrick == * Levera Beach * Ratton's Beach * Bathway Beach * Petite Anse * Antoine Beach == St John == * Black Bay Beach<ref>Black Bay Beach, Grenada - Know BEFORE You Go</ref> * Gouyave Beach<ref>Gouyave Beach, Grenada - Know BEFORE You Go</ref> == Beaches on islands of the coast of Grenada == * Hog island beach * Booby island beach * Sandy island beach * Sugar loaf beach * Sandy island beach * Green island beach * White island beach 9ff5b78a03b0c1381367c0e8d7ffedf632732ebb Origins of the names of places in Grenada 0 95 198 2024-11-26T03:03:18Z 104.245.95.82 0 Created page with "== St.George ==" wikitext text/x-wiki == St.George == b5d7998a0891ee24541f8790ca5f584f5c5ccac1 Waterfalls found in Grenada 0 94 195 2024-11-27T04:08:25Z Kiki 34 Created page with "== St Georges == * Annadale Waterfall == ST. Andrew == * Paraclete Waterfall * Royal Mt. Carmel waterfall * Seven Sisters waterfall * Adelfi Falls * Honeymoon Falls == St Mark == * Concord Waterfall * Au Coin * Fountain bleu * Tufton Hall Waterfall" wikitext text/x-wiki == St Georges == * Annadale Waterfall == ST. Andrew == * Paraclete Waterfall * Royal Mt. Carmel waterfall * Seven Sisters waterfall * Adelfi Falls * Honeymoon Falls == St Mark == * Concord Waterfall * Au Coin * Fountain bleu * Tufton Hall Waterfall 42421175e5dcb57fde7f2e5a15566357bf81c8a2 196 195 2024-12-02T10:00:24Z 191.101.240.53 0 /* ST. Andrew */ added page links wikitext text/x-wiki == St.George == * [[Annadale Waterfall]] == St.Andrew == * [[Paraclete Waterfall]] * [[Royal Mt. Carmel waterfall]] * [[Seven Sisters waterfall]] * [[Adelfi Falls]] * [[Honeymoon Falls]] == St.Mark == * [[Concord Waterfall]] * [[Au Coin]] * [[Fountain bleu]] * [[Tufton Hall Waterfall]] 8638c3aac4b80adb49813258703a291c79b13b3b Grenada 0 96 199 2024-12-06T02:46:20Z 104.245.95.84 0 Created page with " == Grenada == * === Pronunciation === <big>Grenada is pronounced as '''/ɡrɪˈneɪdə/''' (gri-NAY-da).[1]</big> === <big>Location</big> === <big>Grenada is a small island nation located in the Caribbean Sea. It is part of the Lesser Antilles and lies to the south of the main Caribbean islands. The country is situated at the southern end of the Windward Islands, between the Caribbean Sea to the west and the Atlantic Ocean to the east.</big><ref>Grenada Details - The..." wikitext text/x-wiki == Grenada == * === Pronunciation === <big>Grenada is pronounced as '''/ɡrɪˈneɪdə/''' (gri-NAY-da).[1]</big> === <big>Location</big> === <big>Grenada is a small island nation located in the Caribbean Sea. It is part of the Lesser Antilles and lies to the south of the main Caribbean islands. The country is situated at the southern end of the Windward Islands, between the Caribbean Sea to the west and the Atlantic Ocean to the east.</big><ref>Grenada Details - The World Factbook</ref> <big>'''· Coordinates''':</big> * <big>Lat / Lon 12.11587°N, 61.68823°W</big><ref>https://maps.usgs.gov/map/#share=g-60fc860d893c2b6d40ad3d60a0d39336</ref> <big>'''· Nearby Islands''': Grenada is located to the south of Saint Vincent and the Grenadines</big><ref>Saint Vincent and the Grenadines Details - The World Factbook</ref> <big>and to the north of Trinidad and Tobago.</big><ref>Trinidad and Tobago Details - The World Factbook</ref> === <big>Territories</big> === <big>Grenada has several smaller islands that are considered part of its territory. The major territories of Grenada include:</big> <big>'''1. Grenada (Main Island)''': The largest and most populous island, home to the capital, St. George's.</big> <big>'''2. Carriacou'''</big><ref>Carriacou | island, Grenada, West Indies | Britannica</ref><big>: The largest of the smaller islands, located to the northeast of Grenada, known for its beautiful beaches and traditional culture.</big> <big>'''3. Petit Martinique''': A small island located southeast of Carriacou, known for its fishing community and calm lifestyle.</big> === <big>Population</big> === <big>As of the most recent estimates, Grenada has a population of approximately '''120,000''' people.</big> === <big>Size</big> === <big>The total land area of Grenada is about '''344 square kilometers''' (133 square miles), making it one of the smallest island nations in the Caribbean.</big> ---- == <big>Economy</big> == <big>Grenada's economy is mainly driven by agriculture, services, and tourism. The country benefits from a variety of natural resources and has a relatively stable economy within the Caribbean region.</big> <big>'''· Agriculture''': Grenada is known as the "Island of Spice" due to its large production of '''nutmeg''', which is one of its main exports. Other agricultural products include cocoa, bananas, and citrus fruits.</big> <big>'''· Tourism''': Tourism is a key component of Grenada's economy, with visitors attracted by the island's beautiful beaches, clear waters, and historical sites. The tourism sector contributes significantly to employment and foreign exchange.</big> <big>'''· Services''': The services sector, including financial services and retail, also plays an important role in the island's economy.</big> === <big>Currency: The official currency is the East Caribbean dollar (XCD).</big> === ---- == <big>Government</big> == <big>Grenada is a '''parliamentary democracy''' with a '''constitutional monarchy'''. The country is a member of the Commonwealth of Nations, and the British monarch is the head of state, represented by a Governor-General in Grenada.</big> <big>'''· Head of State''': The monarch, currently '''King Charles III''', is represented by the '''Governor-General of Grenada'''.</big> <big>'''· Prime Minister''': The Prime Minister is the head of government and holds executive power. As of 2024, the Prime Minister is '''Dickon Mitchell'''.</big> <big>'''· Legislature''': Grenada has a '''bicameral parliament''', consisting of the '''Senate''' (appointed members) and the '''House of Representatives''' (elected members).</big> === <big>Political Parties: Major political parties include the New National Party (NNP) and the National Democratic Congress (NDC).</big> === ---- == <big>Culture</big> == <big>Grenadian culture is a blend of African, European, and Caribbean influences, shaped by the country's colonial history, slavery, and independence. Some of the key cultural elements include:</big> <big>'''· Music and Dance:''' Grenada has a rich musical heritage, particularly in '''Calypso''', '''Soca''', and '''Steelpan''' music. The island hosts several festivals, including '''Carnival''', which is celebrated in August and features vibrant parades, costumes, and music.</big> <big>'''· Cuisine''': Grenadian cuisine features a combination of fresh seafood, local fruits, and spices. Traditional dishes include '''oil down''' (a stew made with salted meat, breadfruit, and vegetables), '''bake and shark''', and '''rum-based drinks'''.</big> <big>'''· Language''': The official language is '''English''', though Grenadians also speak '''Grenadian Creole''', a French-based Creole language.</big> <big>'''· Festivals''': Aside from Carnival, Grenada celebrates '''Spice Mas''', a festival showcasing the country's agricultural wealth, especially its nutmeg and spice industries.</big> e6d2afdb31871b6b2f1025d9756978c83efe1602 200 199 2024-12-09T02:46:03Z Kiki 34 wikitext text/x-wiki == Grenada == * === Pronunciation === <big>Grenada is pronounced as '''/ɡrɪˈneɪdə/''' (gri-NAY-da). [1]</big> === <big>Location</big> === <big>Grenada is a small island nation located in the Caribbean Sea. It is part of the Lesser Antilles and lies to the south of the main Caribbean islands. The country is situated at the southern end of the Windward Islands, between the Caribbean Sea to the west and the Atlantic Ocean to the east.</big><ref>Grenada Details - The World Factbook</ref> <big>'''· Coordinates''':</big> * <big>Lat / Lon 12.11587°N, 61.68823°W</big><ref>https://maps.usgs.gov/map/#share=g-60fc860d893c2b6d40ad3d60a0d39336</ref> <big>'''· Nearby Islands''': Grenada is located to the south of Saint Vincent and the Grenadines</big><ref>Saint Vincent and the Grenadines Details - The World Factbook</ref> <big>and to the north of Trinidad and Tobago.</big><ref>Trinidad and Tobago Details - The World Factbook</ref> === <big>Territories</big> === <big>Grenada has several smaller islands that are considered part of its territory. The major territories of Grenada include:</big> <big>'''1. Grenada (Main Island)''': The largest and most populous island, home to the capital, St. George's.</big> <big>'''2. Carriacou'''</big><ref>Carriacou | island, Grenada, West Indies | Britannica</ref><big>: The largest of the smaller islands, located to the northeast of Grenada, known for its beautiful beaches and traditional culture.</big> <big>'''3. Petit Martinique''': A small island located southeast of Carriacou, known for its fishing community and calm lifestyle.</big> === <big>Population</big> === <big>As of the most recent estimates, Grenada has a population of approximately '''120,000''' people.</big> === <big>Size</big> === <big>The total land area of Grenada is about '''344 square kilometers''' (133 square miles), making it one of the smallest island nations in the Caribbean.</big> ---- == <big>Economy</big> == <big>Grenada's economy is mainly driven by agriculture, services, and tourism. The country benefits from a variety of natural resources and has a relatively stable economy within the Caribbean region.</big> <big>'''· Agriculture''': Grenada is known as the "Island of Spice" due to its large production of '''nutmeg''', which is one of its main exports. Other agricultural products include cocoa, bananas, and citrus fruits.</big> <big>'''· Tourism''': Tourism is a key component of Grenada's economy, with visitors attracted by the island's beautiful beaches, clear waters, and historical sites. The tourism sector contributes significantly to employment and foreign exchange.</big> <big>'''· Services''': The services sector, including financial services and retail, also plays an important role in the island's economy.</big> === <big>Currency: The official currency is the East Caribbean dollar (XCD).</big> === ---- == <big>Government</big> == <big>Grenada is a '''parliamentary democracy''' with a '''constitutional monarchy'''. The country is a member of the Commonwealth of Nations, and the British monarch is the head of state, represented by a Governor-General in Grenada.</big> <big>'''· Head of State''': The monarch, currently '''King Charles III''', is represented by the '''Governor-General of Grenada'''.</big> <big>'''· Prime Minister''': The Prime Minister is the head of government and holds executive power. As of 2024, the Prime Minister is '''Dickon Mitchell'''.</big> <big>'''· Legislature''': Grenada has a '''bicameral parliament''', consisting of the '''Senate''' (appointed members) and the '''House of Representatives''' (elected members).</big> === <big>Political Parties: Major political parties include the New National Party (NNP) and the National Democratic Congress (NDC).</big> === ---- == <big>Culture</big> == <big>Grenadian culture is a blend of African, European, and Caribbean influences, shaped by the country's colonial history, slavery, and independence. Some of the key cultural elements include:</big> <big>'''· Music and Dance:''' Grenada has a rich musical heritage, particularly in '''Calypso''', '''Soca''', and '''Steelpan''' music. The island hosts several festivals, including '''Carnival''', which is celebrated in August and features vibrant parades, costumes, and music.</big> <big>'''· Cuisine''': Grenadian cuisine features a combination of fresh seafood, local fruits, and spices. Traditional dishes include '''oil down''' (a stew made with salted meat, breadfruit, and vegetables), '''bake and shark''', and '''rum-based drinks'''.</big> <big>'''· Language''': The official language is '''English''', though Grenadians also speak '''Grenadian Creole''', a French-based Creole language.</big> <big>'''· Festivals''': Aside from Carnival, Grenada celebrates '''Spice Mas''', a festival showcasing the country's agricultural wealth, especially its nutmeg and spice industries.</big> d30c77a83a3fa81e3d015fd130c6558e4e56a570 Grenada 0 96 201 200 2024-12-09T02:53:27Z Kiki 34 wikitext text/x-wiki == Grenada == * === Pronunciation === <big>Grenada is pronounced as '''/ɡrɪˈneɪdə/''' (gri-NAY-da). [1]</big> === <big>Location</big> === <big>Grenada is a small island nation located in the Caribbean Sea. It is part of the Lesser Antilles and lies to the south of the main Caribbean islands. The country is situated at the southern end of the Windward Islands, between the Caribbean Sea to the west and the Atlantic Ocean to the east.</big><ref>Grenada Details - The World Factbook</ref> <big>'''· Coordinates''':</big> * <big>Lat / Lon 12.11587°N, 61.68823°W</big><ref>https://maps.usgs.gov/map/#share=g-60fc860d893c2b6d40ad3d60a0d39336</ref> <big>'''· Nearby Islands''': Grenada is located to the south of Saint Vincent and the Grenadines</big><ref>Saint Vincent and the Grenadines Details - The World Factbook</ref> <big>and to the north of Trinidad and Tobago.</big><ref>Trinidad and Tobago Details - The World Factbook</ref> === <big>Territories</big> === <big>Grenada has several smaller islands that are considered part of its territory. The major territories of Grenada include:</big> <big>'''1. Grenada (Main Island)''': The largest and most populous island, home to the capital, St. George's.</big> <big>'''2. Carriacou'''</big><ref>Carriacou | island, Grenada, West Indies | Britannica</ref><big>: The largest of the smaller islands, located to the northeast of Grenada, known for its beautiful beaches and traditional culture.</big> <big>'''3. Petit Martinique''': A small island located southeast of Carriacou, known for its fishing community and calm lifestyle.</big> === <big>Population</big> === <big>As of the most recent estimates, Grenada has a population of approximately '''114,621''' people.</big> === <big>Size</big> === <big>The total land area of Grenada is about '''344 square kilometers''' (133 square miles)</big><ref>Grenada - The World Factbook</ref> ---- == <big>Economy</big> == <big>Grenada's economy is mainly driven by agriculture, services, and tourism. The country benefits from a variety of natural resources and has a relatively stable economy within the Caribbean region.</big> <big>'''· Agriculture''': Grenada is known as the "Island of Spice" due to its large production of '''nutmeg''', which is one of its main exports. Other agricultural products include cocoa, bananas, and citrus fruits.</big> <big>'''· Tourism''': Tourism is a key component of Grenada's economy, with visitors attracted by the island's beautiful beaches, clear waters, and historical sites. The tourism sector contributes significantly to employment and foreign exchange.</big> <big>'''· Services''': The services sector, including financial services and retail, also plays an important role in the island's economy.</big> === <big>Currency: The official currency is the East Caribbean dollar (XCD).</big> === ---- == <big>Government</big> == <big>Grenada is a '''parliamentary democracy''' with a '''constitutional monarchy'''. The country is a member of the Commonwealth of Nations, and the British monarch is the head of state, represented by a Governor-General in Grenada.</big> <big>'''· Head of State''': The monarch, currently '''King Charles III''', is represented by the '''Governor-General of Grenada'''.</big> <big>'''· Prime Minister''': The Prime Minister is the head of government and holds executive power. As of 2024, the Prime Minister is '''Dickon Mitchell'''.</big> <big>'''· Legislature''': Grenada has a '''bicameral parliament''', consisting of the '''Senate''' (appointed members) and the '''House of Representatives''' (elected members).</big> === <big>Political Parties: Major political parties include the New National Party (NNP) and the National Democratic Congress (NDC).</big> === ---- == <big>Culture</big> == <big>Grenadian culture is a blend of African, European, and Caribbean influences, shaped by the country's colonial history, slavery, and independence. Some of the key cultural elements include:</big> <big>'''· Music and Dance:''' Grenada has a rich musical heritage, particularly in '''Calypso''', '''Soca''', and '''Steelpan''' music. The island hosts several festivals, including '''Carnival''', which is celebrated in August and features vibrant parades, costumes, and music.</big> <big>'''· Cuisine''': Grenadian cuisine features a combination of fresh seafood, local fruits, and spices. Traditional dishes include '''oil down''' (a stew made with salted meat, breadfruit, and vegetables), '''bake and shark''', and '''rum-based drinks'''.</big> <big>'''· Language''': The official language is '''English''', though Grenadians also speak '''Grenadian Creole''', a French-based Creole language.</big> <big>'''· Festivals''': Aside from Carnival, Grenada celebrates '''Spice Mas''', a festival showcasing the country's agricultural wealth, especially its nutmeg and spice industries.</big> 4263b776369000e178a420e4e3da90167fa1fbca 217 201 2024-12-09T03:51:00Z 104.245.95.84 0 wikitext text/x-wiki == Grenada == * === Pronunciation === <big>Grenada is pronounced as '''/ɡrɪˈneɪdə/''' (gri-NAY-da). [1]</big> === <big>Location</big> === <big>Grenada is a small island nation located in the Caribbean Sea. It is part of the Lesser Antilles and lies to the south of the main Caribbean islands. The country is situated at the southern end of the Windward Islands, between the Caribbean Sea to the west and the Atlantic Ocean to the east.</big><ref>Grenada Details - The World Factbook</ref> <big>'''· Coordinates''':</big> * <big>Lat / Lon 12.11587°N, 61.68823°W</big><ref>https://maps.usgs.gov/map/#share=g-60fc860d893c2b6d40ad3d60a0d39336</ref> <big>'''· Nearby Islands''': Grenada is located to the south of Saint Vincent and the Grenadines</big><ref>Saint Vincent and the Grenadines Details - The World Factbook</ref> <big>and to the north of Trinidad and Tobago.</big><ref>Trinidad and Tobago Details - The World Factbook</ref> === <big>Territories</big> === <big>Grenada has several smaller islands that are considered part of its territory. The major territories of Grenada include:</big> <big>'''1. Grenada (Main Island)''': The largest and most populous island, home to the capital, St. George's.</big> <big>'''2. Carriacou'''</big><ref>Carriacou | island, Grenada, West Indies | Britannica</ref><big>: The largest of the smaller islands, located to the northeast of Grenada, known for its beautiful beaches and traditional culture.</big> <big>'''3. Petit Martinique''': A small island located southeast of Carriacou, known for its fishing community and calm lifestyle.</big> === <big>Population</big> === <big>As of the most recent estimates, Grenada has a population of approximately '''114,621''' people.</big><ref>Grenada - The World Factbook</ref> === <big>Size</big> === <big>The total land area of Grenada is about '''344 square kilometers''' (133 square miles)</big><ref>Grenada - The World Factbook</ref> ---- == <big>Economy</big> == <big>Grenada's economy is mainly driven by agriculture, services, and tourism. The country benefits from a variety of natural resources and has a relatively stable economy within the Caribbean region.</big> <big>'''· Agriculture''': Grenada is known as the "Island of Spice" due to its large production of '''nutmeg''', which is one of its main exports. Other agricultural products include cocoa, bananas, and citrus fruits.</big> <big>'''· Tourism''': Tourism is a key component of Grenada's economy, with visitors attracted by the island's beautiful beaches, clear waters, and historical sites. The tourism sector contributes significantly to employment and foreign exchange.</big> <big>'''· Services''': The services sector, including financial services and retail, also plays an important role in the island's economy.</big> === <big>Currency: The official currency is the East Caribbean dollar (XCD).</big> === ---- == <big>Government</big> == <big>Grenada is a '''parliamentary democracy''' with a '''constitutional monarchy'''. The country is a member of the Commonwealth of Nations, and the British monarch is the head of state, represented by a Governor-General in Grenada.</big> <big>'''· Head of State''': The monarch, currently '''King Charles III''', is represented by the '''Governor-General of Grenada'''.</big> <big>'''· Prime Minister''': The Prime Minister is the head of government and holds executive power. As of 2024, the Prime Minister is '''Dickon Mitchell'''.</big> <big>'''· Legislature''': Grenada has a '''bicameral parliament''', consisting of the '''Senate''' (appointed members) and the '''House of Representatives''' (elected members).</big> === <big>Political Parties: Major political parties include the New National Party (NNP) and the National Democratic Congress (NDC).</big> === ---- == <big>Culture</big> == <big>Grenadian culture is a blend of African, European, and Caribbean influences, shaped by the country's colonial history, slavery, and independence. Some of the key cultural elements include:</big> <big>'''· Music and Dance:''' Grenada has a rich musical heritage, particularly in '''Calypso''', '''Soca''', and '''Steelpan''' music. The island hosts several festivals, including '''Carnival''', which is celebrated in August and features vibrant parades, costumes, and music.</big> <big>'''· Cuisine''': Grenadian cuisine features a combination of fresh seafood, local fruits, and spices. Traditional dishes include '''oil down''' (a stew made with salted meat, breadfruit, and vegetables), '''bake and shark''', and '''rum-based drinks'''.</big> <big>'''· Language''': The official language is '''English''', though Grenadians also speak '''Grenadian Creole''', a French-based Creole language.</big> <big>'''· Festivals''': Aside from Carnival, Grenada celebrates '''Spice Mas''', a festival showcasing the country's agricultural wealth, especially its nutmeg and spice industries.</big> d21e4bf7a842f43724395f1409dee6cee830d7ff Lakes found in Grenada 0 97 202 2024-12-16T23:25:52Z Kiki 34 Created page with "== Grand Etang lake == Located in the heart of Grand Etang national park, 9 miles southwest of Grenville and 11 miles north of St. Georges , Lake Antoine is a picturesque crater lake that was formed within the caldera of an extinct volcano which sits at an altitude of 1,740 feet above sea level. The lush vegetation provides shelter for a wide variety of animals, particularly for the island’s many species of birds. In addition, Grand Etang is populated by plenty of frog..." wikitext text/x-wiki == Grand Etang lake == Located in the heart of Grand Etang national park, 9 miles southwest of Grenville and 11 miles north of St. Georges , Lake Antoine is a picturesque crater lake that was formed within the caldera of an extinct volcano which sits at an altitude of 1,740 feet above sea level. The lush vegetation provides shelter for a wide variety of animals, particularly for the island’s many species of birds. In addition, Grand Etang is populated by plenty of frogs and lizards, as well as playing host to opossums, armadillos, mongoose, and the Mona monkey.<ref>Grand Etang National Park & Forest Reserve - Grenada Tourism Authority</ref> == Lake Antoine == Like Grand Etang, Lake Antoine sits in the crater of a long extinct volcano, covering about 16 acres. Located 6 miles north of the Eastern town of Grenville, the journey to find this lake is well worth it as you get to admire its beauty, surrounding unspoilt nature and perfect shape from a hillside vantage point. The shallow lake is home to a myriad of wildlife and is excellent for bird watchers as it attracts species such as snail kites, fulvous whistling ducks, large billed seed-finches, gray kingbirds and limpkins. <ref>Lake Antoine - Grenada Tourism Authority</ref> 9b05fe1d2e265182133f55ece9cccc6267c7accc Grenada's national dish 0 98 203 2024-12-17T00:33:23Z Kiki 34 Created page with " ==== Ingredients: ==== * '''2 lbs. salt fish''' (soaked and deboned) * '''2 lbs. chicken''' (cut into pieces, optional) * '''2 lbs. pig tail''' (boiled to remove excess salt) (optional) * '''3 cups coconut milk''' (freshly squeezed) * '''2 medium whole breadfruit''' (peeled, guts removed) * '''2 hands of green bananas''' (peeled) * '''2 lbs. counter flour''' (for dumplings) * '''2 bundles of callaloo leaves''' (finely chopped) * '''1 carrot''' (peeled and chopped) * ''..." wikitext text/x-wiki ==== Ingredients: ==== * '''2 lbs. salt fish''' (soaked and deboned) * '''2 lbs. chicken''' (cut into pieces, optional) * '''2 lbs. pig tail''' (boiled to remove excess salt) (optional) * '''3 cups coconut milk''' (freshly squeezed) * '''2 medium whole breadfruit''' (peeled, guts removed) * '''2 hands of green bananas''' (peeled) * '''2 lbs. counter flour''' (for dumplings) * '''2 bundles of callaloo leaves''' (finely chopped) * '''1 carrot''' (peeled and chopped) * '''1 onion''' (chopped) * '''3 cloves garlic''' (minced) * '''2 sprigs thyme''' * '''1 tsp turmeric''' (optional, for color) * '''Salt to taste''' ---- ==== Instructions: ==== # '''Prepare the Ingredients:''' #* Soak the salt fish overnight and remove any bones. #* Peel and chop the breadfruit, carrots, and green bananas. #* Season the chicken pieces with a blend of green seasonings and salt. #* In a separate bowl, combine the counter flour, salt, and water to form a firm dough for dumplings. Set aside. # '''Combine Ingredients in the Pot:''' #* Layer the pot by adding the breadfruit and green bananas first, packing them neatly along the natural curve of the pot. #* Place the boiled pigtail and seasoned chicken in the center of the pot. # '''Add Liquids & Spices:''' #* Pour in the freshly squeezed coconut milk and turmeric. Be careful not to fill the pot to the top, leaving space for expansion during cooking. Bring it to a boil. # '''Add Dumplings:''' #* Carefully add the prepared dumplings to the boiling pot. # '''Add Callaloo & Vegetables:''' #* Add the chopped callaloo leaves, carrots, onion, garlic, and thyme. # '''Season and Simmer:''' #* Season with salt to taste. Allow everything to simmer for 40-50 minutes, or until the vegetables and breadfruit are tender, and the liquid has reduced. '''DO NOT STIR !!''' # '''Serve:''' bc105596b843ae41989a798b2ff1c41d63cea62f 204 203 2024-12-17T01:46:21Z Kiki 34 wikitext text/x-wiki ==== '''Oil Down Recipe''' ==== ==== Ingredients: ==== * '''2 lbs. salt fish''' (soaked and deboned) * '''2 lbs. chicken''' (cut into pieces, optional) * '''2 lbs. pig tail''' (boiled to remove excess salt) (optional) * '''3 cups coconut milk''' (freshly squeezed) * '''2 medium whole breadfruit''' (peeled, guts removed) * '''2 hands of green bananas''' (peeled) * '''2 lbs. counter flour''' (for dumplings) * '''2 bundles of callaloo leaves''' (finely chopped) * '''1 carrot''' (peeled and chopped) * '''1 onion''' (chopped) * '''3 cloves garlic''' (minced) * '''2 sprigs thyme''' * '''1 tsp turmeric''' (optional, for color) * '''Salt to taste''' ---- ==== Instructions: ==== # '''Prepare the Ingredients:''' #* Soak the salt fish overnight and remove any bones. #* Peel and chop the breadfruit, carrots, and green bananas. #* Season the chicken pieces with a blend of green seasonings and salt. #* In a separate bowl, combine the counter flour, salt, and water to form a firm dough for dumplings. Set aside. # '''Combine Ingredients in the Pot:''' #* Layer the pot by adding the breadfruit and green bananas first, packing them neatly along the natural curve of the pot. #* Place the boiled pigtail and seasoned chicken in the center of the pot. # '''Add Liquids & Spices:''' #* Pour in the freshly squeezed coconut milk and turmeric. Be careful not to fill the pot to the top, leaving space for expansion during cooking. Bring it to a boil. # '''Add Dumplings:''' #* Carefully add the prepared dumplings to the boiling pot. # '''Add Callaloo & Vegetables:''' #* Add the chopped callaloo leaves, carrots, onion, garlic, and thyme. # '''Season and Simmer:''' #* Season with salt to taste. Allow everything to simmer for 40-50 minutes, or until the vegetables and breadfruit are tender, and the liquid has reduced. '''DO NOT STIR !!''' # '''Serve:''' aee6c500f76b69ac283c44b57cd416ad21b69062 207 204 2024-12-28T16:48:38Z Kiki 34 wikitext text/x-wiki [[File:Oil down.jpg|thumb|A picture of Grenada's national dish, Oil Down.]] ==== '''Oil Down Recipe''' ==== ==== Ingredients: ==== * '''2 lbs. salt fish''' (soaked and deboned) * '''2 lbs. chicken''' (cut into pieces, optional) * '''2 lbs. pig tail''' (boiled to remove excess salt) (optional) * '''3 cups coconut milk''' (freshly squeezed) * '''2 medium whole breadfruit''' (peeled, guts removed) * '''2 hands of green bananas''' (peeled) * '''2 lbs. counter flour''' (for dumplings) * '''2 bundles of callaloo leaves''' (finely chopped) * '''1 carrot''' (peeled and chopped) * '''1 onion''' (chopped) * '''3 cloves garlic''' (minced) * '''2 sprigs thyme''' * '''1 tsp turmeric''' (optional, for color) * '''Salt to taste''' ---- ==== Instructions: ==== # '''Prepare the Ingredients:''' #* Soak the salt fish overnight and remove any bones. #* Peel and chop the breadfruit, carrots, and green bananas. #* Season the chicken pieces with a blend of green seasonings and salt. #* In a separate bowl, combine the counter flour, salt, and water to form a firm dough for dumplings. Set aside. # '''Combine Ingredients in the Pot:''' #* Layer the pot by adding the breadfruit and green bananas first, packing them neatly along the natural curve of the pot. #* Place the boiled pigtail and seasoned chicken in the center of the pot. # '''Add Liquids & Spices:''' #* Pour in the freshly squeezed coconut milk and turmeric. Be careful not to fill the pot to the top, leaving space for expansion during cooking. Bring it to a boil. # '''Add Dumplings:''' #* Carefully add the prepared dumplings to the boiling pot. # '''Add Callaloo & Vegetables:''' #* Add the chopped callaloo leaves, carrots, onion, garlic, and thyme. # '''Season and Simmer:''' #* Season with salt to taste. Allow everything to simmer for 40-50 minutes, or until the vegetables and breadfruit are tender, and the liquid has reduced. '''DO NOT STIR !!''' # '''Serve:''' f1447f27fb7befb3f23bf20b0c6bb4cae6ebeb0b Origins of the names of places in Grenada 0 95 205 198 2024-12-17T03:32:38Z Kiki 34 wikitext text/x-wiki == St. George == The capital of Grenada was named after the patron saint of England (King George iii) in 1764<ref>St George - Grenada National Trust</ref> == St. David == The third largest parish of Grenada was named after the patron saint of Wales.<ref>St David - Grenada National Trust</ref> == St. Andrew == The largest of the parishes, is named after Saint Andrew ,the patron saint of Scotland == St John == The parish of St. John is named after John the Baptiste by the French during the 17th century. == St. Marks == 5d04c706f99db8ac6ab1819f9fb8ed07370ee797 File:Oil down.jpg 6 99 206 2024-12-28T16:46:56Z Kiki 34 wikitext text/x-wiki Grenada's national dish, Oil down. a751d0f24cbaddf906586038f8028b312bf6bd88 Waterfalls found in Grenada 0 94 208 196 2024-12-28T17:14:08Z Kiki 34 wikitext text/x-wiki == St.George == * [[Annadale Waterfall]] == St.Andrew == * [[Paraclete Waterfall]] * [[Royal Mt. Carmel waterfall]] (includes 2 waterfalls) * [[Seven Sisters waterfall]] (includes 7 waterfalls) * [[Adelfi Falls]] * [[Honeymoon Falls]] == St.Mark == * [[Concord Waterfall]] * [[Au Coin]] * [[Fountain bleu]] * [[Tufton Hall Waterfall]] 4aefe2dfba50b8e7bc31542f7f2e5632f043bfe6 209 208 2024-12-28T17:14:56Z Kiki 34 wikitext text/x-wiki == St.George == * [[Annadale Waterfall]] == St.Andrew == * [[Paraclete Waterfall]] * [[Royal Mt. Carmel waterfall]] * [[Seven Sisters waterfall]] (includes 7 waterfalls) * [[Adelfi Falls]] * [[Honeymoon Falls]] * Golden falls == St.Mark == * [[Concord Waterfall]] * [[Au Coin]] * [[Fountain bleu]] * [[Tufton Hall Waterfall]] 6b2a316882cf4ac8dac62084570cfe8cb54e2209 216 209 2024-12-31T18:59:06Z Kiki 34 wikitext text/x-wiki == St.George == * [[Annadale Waterfall]] == St.Andrew == * [[Paraclete Waterfall]] * [[Royal Mt. Carmel waterfall]] * [[Seven Sisters waterfall]] (includes 7 waterfalls) * [[Adelfi Falls]] * [[Honeymoon Falls]] * Golden falls == St.Mark == * [[Concord Waterfall]] * [[Au Coin]] * [[Fountain bleu]][[File:Concord falls.jpg|thumb|318x318px|Concord falls Grenada]] * [[Tufton Hall Waterfall]] 7eb8406cc54a66952f1eb9270b9d1b18dc9c93f1 221 216 2025-01-04T03:13:31Z Kiki 34 wikitext text/x-wiki == St.George == * [[Annadale Waterfall]] * [[File:Shodoo waterfall.jpg|thumb|526x526px|The beautiful Shodoo waterfall, Grenada, W.I]]Shodoo waterfall == St.Andrew == * [[Paraclete Waterfall]] * [[Royal Mt. Carmel waterfall]] * [[Seven Sisters waterfall]] (includes 7 waterfalls) * [[Adelfi Falls]] * [[Honeymoon Falls]] * Golden falls == St.Mark == * [[Concord Waterfall]] * [[Au Coin]] * [[Fountain bleu]][[File:Concord falls.jpg|thumb|318x318px|Concord falls Grenada]] * [[Tufton Hall Waterfall]] f07e9153638274b3de984782162d11533455b2a8 File:Concord falls.jpg 6 102 212 2024-12-31T17:45:09Z Kiki 34 wikitext text/x-wiki Concord falls is a stunning waterfall located in the lush,green hills of Grenada. c3d5ed80d53b9720b5f802e24551f3c7d5355b7d Main Page 0 1 218 1 2025-01-02T21:13:46Z Kiki 34 wikitext text/x-wiki <strong>Media Wiki has been installed.</strong> Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide] for information on using the wiki software. == Getting started == * [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list] * [[mediawikiwiki:Special:MyLanguage/Manual:FAQ|Media Wiki FAQ]] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Media Wiki release mailing list] * [[mediawikiwiki:Special:MyLanguage/Localisation#Translation_resources|Localise Media Wiki for your language]] * [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki] 0ea66f2f2a4470f165c78e5f761c15c43d1a3beb Grenada Public Holidays 2025 0 103 219 2025-01-03T23:06:09Z Wikiricky 1 Created page wikitext text/x-wiki List of public holidays 2025<ref>https://www.gov.gd/index.php/component/edocman/grenadas-public-holidays-2025/viewdocument/1386</ref> * January 1: [[New Year's Day]] * February 7: [[Independence day]] * April 18: [[Good Friday]] * April 21: [[Easter Monday]] * May 1: [[Labour Day]] * June 9: [[Whit Monday]] * June 19: [[Corpus Christi]] * August 1: [[Emancipation Day Observance]] * August 11: [[Carnival Monday]] * August 12: [[Carnival Tuesday]] * October 19: [[National Hero's Day]] ( October 20th will a holiday)<ref>When a Bank holiday falls on a Sunday, the Monday immediately following shall be observed. (CHAPTER 25, BANK HOLIDAYS ACT -Schedule - BANK HOLIDAYS ACT).https://grenadaparliament.gd/storage/2021/08/S.R.O.-16-of-2016-Bank-Holiday.pdf</ref> * October 25: [[Thanksgiving Day]] * December 25: [[Christmas Day]] * December 26: [[Boxing Day]] 97fb38e4946e8ac99688e13b38b9f54eb7db34c4 File:Shodoo waterfall.jpg 6 104 220 2025-01-04T03:10:44Z Kiki 34 wikitext text/x-wiki Shodoo waterfall, located at Willis, St. Georges, Grenada 8feb2d95f693292f97ef0c3e55d21b0a93688879 Unofficial Holidays celebrated in Grenada 0 105 222 2025-01-04T21:14:22Z Kiki 34 Created page with "== Saraka == '''Saraka''' is a thanksgiving feast passed down from African ancestors, where communities share traditional foods cooked over firewood and served on b'''luggoe''' or banana leaves. It features drumming, dancing, and offerings of flowers and rum. Saraka is held yearly: it is celebrated on the Friday before Ash Wednesday at '''La Poterie''', St. Andrew, and the Friday after Easter at '''River Sallee''', St. Patrick. <ref>Saraca - Grenada National Trust</ref>..." wikitext text/x-wiki == Saraka == '''Saraka''' is a thanksgiving feast passed down from African ancestors, where communities share traditional foods cooked over firewood and served on b'''luggoe''' or banana leaves. It features drumming, dancing, and offerings of flowers and rum. Saraka is held yearly: it is celebrated on the Friday before Ash Wednesday at '''La Poterie''', St. Andrew, and the Friday after Easter at '''River Sallee''', St. Patrick. <ref>Saraca - Grenada National Trust</ref> == Guy Fawkes Day == Guy Fawkes day is an old English tradition that is celebrated annually in Grenada, to commemorate the failed gun powder plot of 1605 .Guy Fawkes is usually held at Morne Jaloux St.Georges. == Armistice Day == '''Armistice Day''' is a solemn occasion to remember the end of World War I and to honor those who sacrificed their lives during the conflict. It is marked by memorial services, moments of silence, and the laying of wreaths at war memorials. It is a day used commemorated the armistice signed in 1918, ending the devastating war. Grenadians are usually seen wearing poppies around this time and it is celebrated on November 11th annually == Fishermans Birthday == In '''Grenada''', '''Fisherman's Birthday''' is celebrated on '''June 29th''' every year. This day is dedicated to honoring and celebrating the island's '''fishing community''' and the important role that fishermen play in Grenada's culture and economy. === Key Features of Fisherman's Birthday: === * '''Religious Significance''': The day often has a '''religious''' aspect, as many fishermen and their families attend church services to give thanks for the year's work and to seek blessings for future fishing endeavors. * '''Community Celebrations''': Fisherman's Birthday is celebrated with '''festivals''', '''beach parties''', and '''community events'''. The fishing communities come together to celebrate their culture, heritage, and the vital role fishing plays in Grenadian life. * '''Traditional Food and Drink''': Local delicacies like '''fish''' dishes and other seafood are featured, and the event is also an occasion to enjoy traditional music, dancing, and community gatherings.<ref>FISHERMANS’ BIRTHDAY IS ON | Grenada Broadcasting Network</ref> == The Carriacou Maroon and Stringband Festival == ===== The Carriacou Maroon and String Band Festival is the result of the merging of the African Maroon festival and String Band music into one unique celebration, held annually at the end of April. The festival honors the Maroons who escaped slavery and built their own communities while preserving African culture and heritage. It also focuses on remembering the ancestors and giving thanks for a good harvest. Over the course of three days, the festival features String Band music, Quadrille dancing, local foods, the beating of the big drums, and the wearing of traditional attire. ===== 8025e36d8e7fce69974b50dc328c22cbf9b5ea94 223 222 2025-01-07T22:46:18Z Kiki 34 wikitext text/x-wiki == Saraka == '''Saraka''' is a thanksgiving feast passed down from African ancestors, where communities share traditional foods cooked over firewood and served on b'''luggoe''' or banana leaves. It features drumming, dancing, and offerings of flowers and rum. Saraka is held yearly: it is celebrated on the Friday before Ash Wednesday at '''La Poterie''', St. Andrew, and the Friday after Easter at '''River Sallee''', St. Patrick. <ref>Saraca - Grenada National Trust</ref> == Guy Fawkes Day == Guy Fawkes day is an old English tradition that is celebrated annually in Grenada, to commemorate the failed gun powder plot of 1605 .Guy Fawkes is usually held at Morne Jaloux St.Georges. == Armistice Day == '''Armistice Day''' is a solemn occasion to remember the end of World War I and to honor those who sacrificed their lives during the conflict. It is marked by memorial services, moments of silence, and the laying of wreaths at war memorials. It is a day used commemorated the armistice signed in 1918, ending the devastating war. Grenadians are usually seen wearing poppies around this time and it is celebrated on November 11th annually == Fishermans Birthday == In '''Grenada''', '''Fisherman's Birthday''' is celebrated on '''June 29th''' every year. This day is dedicated to honoring and celebrating the island's '''fishing community''' and the important role that fishermen play in Grenada's culture and economy. === Key Features of Fisherman's Birthday: === * '''Religious Significance''': The day often has a '''religious''' aspect, as many fishermen and their families attend church services to give thanks for the year's work and to seek blessings for future fishing endeavors. * '''Community Celebrations''': Fisherman's Birthday is celebrated with '''festivals''', '''beach parties''', and '''community events'''. The fishing communities come together to celebrate their culture, heritage, and the vital role fishing plays in Grenadian life. * '''Traditional Food and Drink''': Local delicacies like '''fish''' dishes and other seafood are featured, and the event is also an occasion to enjoy traditional music, dancing, and community gatherings.<ref>FISHERMANS’ BIRTHDAY IS ON | Grenada Broadcasting Network</ref> == The Carriacou Maroon and Stringband Festival == ===== The Carriacou Maroon and String Band Festival is the result of the merging of the African Maroon festival and String Band music into one unique celebration, held annually at the end of April. The festival honors the Maroons who escaped slavery and built their own communities while preserving African culture and heritage. It also focuses on remembering the ancestors and giving thanks for a good harvest. Over the course of three days, the festival features String Band music, Quadrille dancing, local foods, the beating of the big drums, and the wearing of traditional attire. ===== == Carriacou Carnival == Carriacou Carnival, also known as “Kayak Mas,” is a celebration held on the sister island of Carriacou in February during the pre-Lenten season. Kayak Mas offers an authentic cultural experience with a unique twist. The carnival blends elements of Carriacou’s African, French, and English heritage, which are represented in the music, street celebrations, masquerade bands, food, colors, and splendor.<ref>Carriacou Carnival - Grenada Tourism Authority</ref> 54b05933332892bfd40fa90acb16c7e846827112 231 223 2025-01-20T09:43:51Z Wikiricky 1 /* The Carriacou Maroon and Stringband Festival */ fixed bold text wikitext text/x-wiki == Saraka == '''Saraka''' is a thanksgiving feast passed down from African ancestors, where communities share traditional foods cooked over firewood and served on b'''luggoe''' or banana leaves. It features drumming, dancing, and offerings of flowers and rum. Saraka is held yearly: it is celebrated on the Friday before Ash Wednesday at '''La Poterie''', St. Andrew, and the Friday after Easter at '''River Sallee''', St. Patrick. <ref>Saraca - Grenada National Trust</ref> == Guy Fawkes Day == Guy Fawkes day is an old English tradition that is celebrated annually in Grenada, to commemorate the failed gun powder plot of 1605 .Guy Fawkes is usually held at Morne Jaloux St.Georges. == Armistice Day == '''Armistice Day''' is a solemn occasion to remember the end of World War I and to honor those who sacrificed their lives during the conflict. It is marked by memorial services, moments of silence, and the laying of wreaths at war memorials. It is a day used commemorated the armistice signed in 1918, ending the devastating war. Grenadians are usually seen wearing poppies around this time and it is celebrated on November 11th annually == Fishermans Birthday == In '''Grenada''', '''Fisherman's Birthday''' is celebrated on '''June 29th''' every year. This day is dedicated to honoring and celebrating the island's '''fishing community''' and the important role that fishermen play in Grenada's culture and economy. === Key Features of Fisherman's Birthday: === * '''Religious Significance''': The day often has a '''religious''' aspect, as many fishermen and their families attend church services to give thanks for the year's work and to seek blessings for future fishing endeavors. * '''Community Celebrations''': Fisherman's Birthday is celebrated with '''festivals''', '''beach parties''', and '''community events'''. The fishing communities come together to celebrate their culture, heritage, and the vital role fishing plays in Grenadian life. * '''Traditional Food and Drink''': Local delicacies like '''fish''' dishes and other seafood are featured, and the event is also an occasion to enjoy traditional music, dancing, and community gatherings.<ref>FISHERMANS’ BIRTHDAY IS ON | Grenada Broadcasting Network</ref> == The Carriacou Maroon and Stringband Festival == The Carriacou Maroon and String Band Festival is the result of the merging of the African Maroon festival and String Band music into one unique celebration, held annually at the end of April. The festival honors the Maroons who escaped slavery and built their own communities while preserving African culture and heritage. It also focuses on remembering the ancestors and giving thanks for a good harvest. Over the course of three days, the festival features String Band music, Quadrille dancing, local foods, the beating of the big drums, and the wearing of traditional attire. == Carriacou Carnival == Carriacou Carnival, also known as “Kayak Mas,” is a celebration held on the sister island of Carriacou in February during the pre-Lenten season. Kayak Mas offers an authentic cultural experience with a unique twist. The carnival blends elements of Carriacou’s African, French, and English heritage, which are represented in the music, street celebrations, masquerade bands, food, colors, and splendor.<ref>Carriacou Carnival - Grenada Tourism Authority</ref> b51380b343465df9d7360ffe584dff72b4298ab7 Places in Grenada with french names 0 106 224 2025-01-14T01:43:06Z Kiki 34 Created page with "== French name Meaning == * Grand anse Big bay * '''L'Anse Aux Épines Bay of thorns''' * Morne Rouge Red hill * Beausejour Beautiful view * Frequente..." wikitext text/x-wiki == French name Meaning == * Grand anse Big bay * '''L'Anse Aux Épines Bay of thorns''' * Morne Rouge Red hill * Beausejour Beautiful view * Frequente Frequented * Grand mal Big evil * La Mode Fashion * Mardi Gra Fat Tuesday * Mont tout All mountain * Apretout After all * Anse la Roche ( Carriacou) Rock bay * Beaulieu Beautiful place * Belle isles Beautiful island * Belmont Beautiful mount * Bonaire Good air * Celeste Celestial * Corbeau Raven * Crochu Hooked, crooked * Duquesne "from the Oak" * Durmont Hard mountain * Fontainbleu falls After the town of Fontainebleau, south of Paris * Gouyave Guava * Grand Bras Long arms * Grand Roy Great king * Gros Point Big point * La Baye The bay * la Filette The little girl * La Fortune Fortune * La Mode Fashion * La Poterie The potter's * La Sagesse bay Wisdom bay * La Tante The aunt * La Borie An old shepherd hut * Marigot The swamp * Marquis Marquee * Mirabeau A place where you have a large view * Mon Plaisir My pleasure * Montreuil numerous placenames in France Morne délice : delightful mountain Morne Docteur : doctor mount Morne Fendue : cracked mountain Morne jaloux : jealous mountain Morne Longue : long mountain Morne rouge : red mountain Morne Tranquille : Quiet mountain Noelville : Christmastown Nonpareil : without equal Palmiste : palm tree Pecher : peach tree perdmontemps : wastes my time Petite Anse : small bay Petite Martinique : Little Martinique (from the name of the large French island in the Carribbean) petit étang : the pond Petit Saint Hilaire (on Carriacou): little Saint Hilaire (a place name existing as very numerous villages in France) Pomme rose : pink apple Pyrénées : (mountain range separating France from Spain) Quarrière : a quarry Ravine : gulch, gully Requin Bay : Shark bay Ronde island : round island Rosemont : rose mount Saint Cloud (French town near Paris) Saint-Omer : a town in northern France Salines : salt pans, salt fields Sans Souci : without trouble Sauteurs : jumpers Soubise : under winter's winds Terre Cannes : Sugar Cane fields Vendome : (from the French town Vendôme) fb8e6c8ee0bbb3405c2d5b319b28f3cf523a3aff 225 224 2025-01-14T23:19:09Z Kiki 34 wikitext text/x-wiki == French name Meaning == * Grand anse.......................................................... Big bay * '''L'Anse Aux Épines............................................ Bay of thorns''' * Morne Rouge........................................................ Red hill * Beausejour........................................................... Beautiful view * Frequente............................................................ Frequented * Grand mal........................................................... Big evil * La Mode............................................................... Fashion * Mardi Gras........................................................... Fat Tuesday * Mont tout.............................................................. All mountain * Apretout................................................................. After all * Anse la Roche ( Carriacou) ................................. Rock bay * Beaulieu............................................................... Beautiful place * Belle isles.............................................................. Beautiful island * Belmont ............................................................... Beautiful mount * Bonaire ............................................................... Good air * Celeste................................................................. Celestial * Corbeau .............................................................. Raven * Crochu.................................................................. Hooked, crooked * Duquesne............................................................. "from the Oak" * Durmont............................................................... Hard mountain * Fontain Bleu falls.................................................. After the town of Fontainebleau, south of Paris * Gouyave............................................................... Guava * Grand Bras........................................................... Long arms * Grand Roy Great king * Gros Point Big point * La Baye The bay * la Filette The little girl * La Fortune Fortune * La Mode Fashion * La Poterie The potter's * La Sagesse bay Wisdom bay * La Tante The aunt * La Borie An old shepherd hut * Marigot The swamp * Marquis Marquee * Mirabeau A place where you have a large view * Mon Plaisir My pleasure * Montreuil numerous placenames in France Morne délice : delightful mountain Morne Docteur : doctor mount Morne Fendue : cracked mountain Morne jaloux : jealous mountain Morne Longue : long mountain Morne rouge : red mountain Morne Tranquille : Quiet mountain Noelville : Christmastown Nonpareil : without equal Palmiste : palm tree Pecher : peach tree perdmontemps : wastes my time Petite Anse : small bay Petite Martinique : Little Martinique (from the name of the large French island in the Carribbean) petit étang : the pond Petit Saint Hilaire (on Carriacou): little Saint Hilaire (a place name existing as very numerous villages in France) Pomme rose : pink apple Pyrénées : (mountain range separating France from Spain) Quarrière : a quarry Ravine : gulch, gully Requin Bay : Shark bay Ronde island : round island Rosemont : rose mount Saint Cloud (French town near Paris) Saint-Omer : a town in northern France Salines : salt pans, salt fields Sans Souci : without trouble Sauteurs : jumpers Soubise : under winter's winds Terre Cannes : Sugar Cane fields Vendome : (from the French town Vendôme) 5f37ad80d038900e384d62d246e28ef0a30dbf66 226 225 2025-01-14T23:39:29Z Kiki 34 wikitext text/x-wiki == French name Meaning == * Grand anse.......................................................... Big bay * '''L'Anse Aux Épines............................................ Bay of thorns''' * Morne Rouge........................................................ Red hill * Beausejour........................................................... Beautiful view * Frequente............................................................ Frequented * Grand mal........................................................... Big evil * La Mode............................................................... Fashion * Mardi Gras........................................................... Fat Tuesday * Mont tout.............................................................. All mountain * Apretout................................................................. After all * Anse la Roche ( Carriacou) ................................. Rock bay * Beaulieu............................................................... Beautiful place * Belle isles.............................................................. Beautiful island * Belmont ............................................................... Beautiful mount * Bonaire ............................................................... Good air * Celeste................................................................. Celestial * Corbeau .............................................................. Raven * Crochu.................................................................. Hooked, crooked * Duquesne............................................................. "from the Oak" * Durmont............................................................... Hard mountain * Fontain Bleu falls.................................................. After the town of Fontainebleau, south of Paris * Gouyave............................................................... Guava * Grand Bras........................................................... Long arms * Grand Roy............................................................ Great king * Gros Point........................................................... Big point * La Baye............................................................... The bay * la Filette............................................................... The little girl * La Fortune........................................................... Fortune * La Mode.............................................................. Fashion * La Poterie............................................................ The potter's * La Sagesse bay.................................................. Wisdom bay * La Tante.............................................................. The aunt * La Borie.............................................................. An old shepherd hut * Marigot.............................................................. The swamp * Marquis............................................................ Marquee * Mirabeau......................................................... A place where you have a large view * Mon Plaisir....................................................... My pleasure * Montreuil.......................................................... Numerous placenames in France * Morne Delice..................................................... Delightful mountain * Morne Docteur....................................................Doctor mount * Morne Fendue.................................................. Cracked mountain * Morne jaloux......................................................Jealous mountain * Morne Longue................................................... Long mountain * Morne rouge......................................................Red mountain * Morne Tranquille.............................................. Quiet mountain * Nonpareil......................................................... Without equal * Palmiste............................................................ Palm tree * Perdmontemps................................................. Wastes my time * Petite Anse.........................................................Small bay * Petite Martinique............................................... Little Martinique (from the name of the large French island in the Caribbean) * Petit Saint Hilaire( Carriacou)............................ Little Saint Hilaire (a place name existing as very numerous villages in France) * Pomme rose......................................................Pink apple * Ravine...............................................................Gulch, gully * Requin Bay.........................................................Shark bay * Saint Cloud........................................................ (French town near Paris) * Salines.............................................................. Salt pans, salt fields * Sans Souci........................................................ Without trouble * Sauteurs........................................................... Jumpers * Soubise............................................................ under winter's winds * Vendome.......................................................... (from the French town Vendôme) 600a415c8b33c1216d181cddc529a55c9199992c Secondary Schools In Grenada 0 107 227 2025-01-18T00:32:25Z Kiki 34 Created page with "== Grenada Boys Secondary School == The Grenada Boys' Secondary School (GBSS), originally called St. George's Grammar School, opened on February 2, 1885, with 10 male students at Mrs. Grey's premises in St. George's. In 1910-11, it was renamed and relocated to Melville Street, officially opening on September 18, 1911, with 23 students. In 1946, the school moved to Tanteen, using wooden barracks previously occupied by the Windward Island battalion during World War II. The..." wikitext text/x-wiki == Grenada Boys Secondary School == The Grenada Boys' Secondary School (GBSS), originally called St. George's Grammar School, opened on February 2, 1885, with 10 male students at Mrs. Grey's premises in St. George's. In 1910-11, it was renamed and relocated to Melville Street, officially opening on September 18, 1911, with 23 students. In 1946, the school moved to Tanteen, using wooden barracks previously occupied by the Windward Island battalion during World War II. These barracks were destroyed by Hurricane Ivan in 2004, and the school faced further destruction from fires in 2005.The school underwent major renovations starting in 2006, with a new building completed by 2008 and further upgrades in 2021. Although primarily a boys' school, girls attended the sixth form and were briefly admitted to lower forms between 1982 and 1991.Today, GBSS has approximately 840 male students, supported by a principal, 50 teachers, and two counselors.<ref>Edward L. Cox: The Grenada Boys' Secondary School and the Debate Over Secondary Education in Grenada, 1885-1946</ref> == Presbyterian Brothers College == f20ab9a15c5d42a7b15f197baabece4ae10c780a 228 227 2025-01-18T02:08:27Z Kiki 34 wikitext text/x-wiki == Grenada Boys Secondary School == The Grenada Boys' Secondary School (GBSS), originally called St. George's Grammar School, opened on February 2, 1885, with 10 male students at Mrs. Grey's premises in St. George's. In 1910-11, it was renamed and relocated to Melville Street, officially opening on September 18, 1911, with 23 students. In 1946, the school moved to Tanteen, using wooden barracks previously occupied by the Windward Island battalion during World War II. These barracks were destroyed by Hurricane Ivan in 2004, and the school faced further destruction from fires in 2005.The school underwent major renovations starting in 2006, with a new building completed by 2008 and further upgrades in 2021. Although primarily a boys' school, girls attended the sixth form and were briefly admitted to lower forms between 1982 and 1991.Today, GBSS has approximately 840 male students, supported by a principal, 50 teachers, and two counselors.<ref>Edward L. Cox: The Grenada Boys' Secondary School and the Debate Over Secondary Education in Grenada, 1885-1946</ref> == Presentation Brothers College == '''Presentation Brothers College (PBC)''' is a prominent Roman Catholic secondary school for boys located in St. George's, Grenada. It was founded by the '''Presentation Brothers''' from Ireland on '''January 26th, 1947'''.<ref>https://www.facebook.com/share/185UeSHzmF</ref> == St. Josephs Convent St. George == '''St. Joseph’s Convent St. George''', founded in '''1875''', has been a cornerstone of excellence in Catholic education for over '''150 years'''. Situated in the heart of St. George’s, Grenada, the school was established with a vision to provide a well-rounded education that promotes '''academic excellence''', '''spiritual growth''', and a strong sense of '''community service'''. From its modest beginnings, the school has grown into a renowned institution, serving as a beacon of '''knowledge''' and '''morality''' in the community.<ref>About – St. Joseph’s Convent St. George</ref> 12a4ca576efe78511e6c27be8e4ef20632b6abd6 229 228 2025-01-18T02:13:09Z Kiki 34 wikitext text/x-wiki == Grenada Boys Secondary School == The Grenada Boys' Secondary School (GBSS), originally called St. George's Grammar School, opened on February 2, 1885, with 10 male students at Mrs. Grey's premises in St. George's. In 1910-11, it was renamed and relocated to Melville Street, officially opening on September 18, 1911, with 23 students. In 1946, the school moved to Tanteen, using wooden barracks previously occupied by the Windward Island battalion during World War II. These barracks were destroyed by Hurricane Ivan in 2004, and the school faced further destruction from fires in 2005.The school underwent major renovations starting in 2006, with a new building completed by 2008 and further upgrades in 2021. Although primarily a boys' school, girls attended the sixth form and were briefly admitted to lower forms between 1982 and 1991.Today, GBSS has approximately 840 male students, supported by a principal, 50 teachers, and two counselors.<ref>Edward L. Cox: The Grenada Boys' Secondary School and the Debate Over Secondary Education in Grenada, 1885-1946</ref> == Presentation Brothers College == '''Presentation Brothers College (PBC)''' is a prominent Roman Catholic secondary school for boys located in St. George's, Grenada. It was founded by the '''Presentation Brothers''' from Ireland on '''January 26th, 1947'''.<ref>https://www.facebook.com/share/185UeSHzmF</ref> == St. Josephs Convent St. George == '''St. Joseph’s Convent St. George''', founded in '''1875''', has been a cornerstone of excellence in Catholic education for over '''150 years'''. Situated in the heart of St. George’s, Grenada, the school was established with a vision to provide a well-rounded education that promotes '''academic excellence''', '''spiritual growth''', and a strong sense of '''community service'''. From its modest beginnings, the school has grown into a renowned institution, serving as a beacon of '''knowledge''' and '''morality''' in the community.<ref>About – St. Joseph’s Convent St. George</ref> == Anglican High Secondary School == af0e6909e905f8e4c3eab5e09610e083fa96cd8d 232 229 2025-01-20T19:36:51Z Kiki 34 wikitext text/x-wiki == Grenada Boys Secondary School == The Grenada Boys' Secondary School (GBSS), originally called St. George's Grammar School, opened on February 2, 1885, with 10 male students at Mrs. Grey's premises in St. George's. In 1910-11, it was renamed and relocated to Melville Street, officially opening on September 18, 1911, with 23 students. In 1946, the school moved to Tanteen, using wooden barracks previously occupied by the Windward Island battalion during World War II. These barracks were destroyed by Hurricane Ivan in 2004, and the school faced further destruction from fires in 2005.The school underwent major renovations starting in 2006, with a new building completed by 2008 and further upgrades in 2021. Although primarily a boys' school, girls attended the sixth form and were briefly admitted to lower forms between 1982 and 1991.Today, GBSS has approximately 840 male students, supported by a principal, 50 teachers, and two counselors.<ref>Edward L. Cox: The Grenada Boys' Secondary School and the Debate Over Secondary Education in Grenada, 1885-1946</ref> == Presentation Brothers College == '''Presentation Brothers College (PBC)''' is a prominent Roman Catholic secondary school for boys located in St. George's, Grenada. It was founded by the '''Presentation Brothers''' from Ireland on '''January 26th, 1947'''.<ref>https://www.facebook.com/share/185UeSHzmF</ref> == St. Josephs Convent St. George == '''St. Joseph’s Convent St. George''', founded in '''1875''', has been a cornerstone of excellence in Catholic education for over '''150 years'''. Situated in the heart of St. George’s, Grenada, the school was established with a vision to provide a well-rounded education that promotes '''academic excellence''', '''spiritual growth''', and a strong sense of '''community service'''. From its modest beginnings, the school has grown into a renowned institution, serving as a beacon of '''knowledge''' and '''morality''' in the community.<ref>About – St. Joseph’s Convent St. George</ref> == Anglican High Secondary School == == Wesley College == == Boca Secondary School == == Happy Hill Secondary School == == Beacon High School == == Westmorland Secondary School == == J.W Fletcher Catholic Secondary School == == St. Davids's Catholic Secondary School == == Westerhall Secondary School == == St. Joseph's Convent St. Andrew == == St. Andrews Anglican Secondary School == == Grenada Secondary School == == Grenada Christian Academy == == Grenada SDA Comprehensive School == == St. John's Christian Academy == == St. Mark Secondary School == == St. Rose Modern Secondary School == 689c905178e3ab99dbd1cdf83c764d6d7e5b02fa 233 232 2025-01-20T22:00:46Z Kiki 34 wikitext text/x-wiki == Grenada Boys Secondary School == The Grenada Boys' Secondary School (GBSS), originally called St. George's Grammar School, opened on February 2, 1885, with 10 male students at Mrs. Grey's premises in St. George's. In 1910-11, it was renamed and relocated to Melville Street, officially opening on September 18, 1911, with 23 students. In 1946, the school moved to Tanteen, using wooden barracks previously occupied by the Windward Island battalion during World War II. These barracks were destroyed by Hurricane Ivan in 2004, and the school faced further destruction from fires in 2005.The school underwent major renovations starting in 2006, with a new building completed by 2008 and further upgrades in 2021. Although primarily a boys' school, girls attended the sixth form and were briefly admitted to lower forms between 1982 and 1991.Today, GBSS has approximately 840 male students, supported by a principal, 50 teachers, and two counselors.<ref>Edward L. Cox: The Grenada Boys' Secondary School and the Debate Over Secondary Education in Grenada, 1885-1946</ref> == Presentation Brothers College == '''Presentation Brothers College (PBC)''' is a prominent Roman Catholic secondary school for boys located in St. George's, Grenada. It was founded by the '''Presentation Brothers''' from Ireland on '''January 26th, 1947'''.<ref>https://www.facebook.com/share/185UeSHzmF</ref> == St. Josephs Convent St. George == '''St. Joseph’s Convent St. George''', founded in '''1875''', has been a cornerstone of excellence in Catholic education for over '''150 years'''. Situated in the heart of St. George’s, Grenada, the school was established with a vision to provide a well-rounded education that promotes '''academic excellence''', '''spiritual growth''', and a strong sense of '''community service'''. From its modest beginnings, the school has grown into a renowned institution, serving as a beacon of '''knowledge''' and '''morality''' in the community.<ref>About – St. Joseph’s Convent St. George</ref> == Anglican High Secondary School == The Church of England High School, now the Anglican High School, first opened its doors to girls in September 1916.  The school was the brainchild of Archdeacon Walton who wanted a school to teach girls of “the Church of England Persuasion”. The school was first located at Bachelor Hall, Simmons Alley.  Next it moved to Lamollie House, the present site of First Caribbean International Bank (formerly Barclay’s Bank) on Church Street.  When the school first opened, there were nineteen students on roll.  The staff numbered three. In September 1952 the school moved to its present location in Tanteen, after a brief stint (1946-1952) on the compound of the Grenada Boys’ Secondary School.  On October 15th, 1972 the main building of the school was completely destroyed by fire.<ref>History</ref> == Wesley College == == Boca Secondary School == == Happy Hill Secondary School == == Beacon High School == == Westmorland Secondary School == == J.W Fletcher Catholic Secondary School == == St. Davids's Catholic Secondary School == == Westerhall Secondary School == == St. Joseph's Convent St. Andrew == == St. Andrews Anglican Secondary School == == Grenada Secondary School == == Grenada Christian Academy == == Grenada SDA Comprehensive School == == St. John's Christian Academy == == St. Mark Secondary School == == St. Rose Modern Secondary School == c4687b06585dc35ccb3141219a934e4a3e069306 234 233 2025-01-20T22:50:50Z Kiki 34 wikitext text/x-wiki == Grenada Boys Secondary School == The Grenada Boys' Secondary School (GBSS), originally called St. George's Grammar School, opened on February 2, 1885, with 10 male students at Mrs. Grey's premises in St. George's. In 1910-11, it was renamed and relocated to Melville Street, officially opening on September 18, 1911, with 23 students. In 1946, the school moved to Tanteen, using wooden barracks previously occupied by the Windward Island battalion during World War II. These barracks were destroyed by Hurricane Ivan in 2004, and the school faced further destruction from fires in 2005.The school underwent major renovations starting in 2006, with a new building completed by 2008 and further upgrades in 2021. Although primarily a boys' school, girls attended the sixth form and were briefly admitted to lower forms between 1982 and 1991.Today, GBSS has approximately 840 male students, supported by a principal, 50 teachers, and two counselors.<ref>Edward L. Cox: The Grenada Boys' Secondary School and the Debate Over Secondary Education in Grenada, 1885-1946</ref> == Presentation Brothers College == '''Presentation Brothers College (PBC)''' is a prominent Roman Catholic secondary school for boys located in St. George's, Grenada. It was founded by the '''Presentation Brothers''' from Ireland on '''January 26th, 1947'''.<ref>https://www.facebook.com/share/185UeSHzmF</ref> == St. Josephs Convent St. George == '''St. Joseph’s Convent St. George''', founded in '''1875''', has been a cornerstone of excellence in Catholic education for over '''150 years'''. Situated in the heart of St. George’s, Grenada, the school was established with a vision to provide a well-rounded education that promotes '''academic excellence''', '''spiritual growth''', and a strong sense of '''community service'''. From its modest beginnings, the school has grown into a renowned institution, serving as a beacon of '''knowledge''' and '''morality''' in the community.<ref>About – St. Joseph’s Convent St. George</ref> == Anglican High Secondary School == The Church of England High School, now the Anglican High School, first opened its doors to girls in September 1916.  The school was the brainchild of Archdeacon Walton who wanted a school to teach girls of “the Church of England Persuasion”. The school was first located at Bachelor Hall, Simmons Alley.  Next it moved to Lamollie House, the present site of First Caribbean International Bank (formerly Barclay’s Bank) on Church Street.  When the school first opened, there were nineteen students on roll.  The staff numbered three. In September 1952 the school moved to its present location in Tanteen, after a brief stint (1946-1952) on the compound of the Grenada Boys’ Secondary School.  On October 15th, 1972 the main building of the school was completely destroyed by fire.<ref>http://www.ahsgrenada.net/index.php/about-ahs/history</ref> == Wesley College == Wesley College is a secondary School located in St, Georges Grenada Which was founded by the Methodist church in 1942. == Boca Secondary School == == Happy Hill Secondary School == == Beacon High School == == Westmorland Secondary School == == J.W Fletcher Catholic Secondary School == == St. Davids's Catholic Secondary School == == Westerhall Secondary School == == St. Joseph's Convent St. Andrew == == St. Andrews Anglican Secondary School == == Grenada Secondary School == == Grenada Christian Academy == == Grenada SDA Comprehensive School == == St. John's Christian Academy == == St. Mark Secondary School == == St. Rose Modern Secondary School == e146f0effd964abb995521fc3287720eb381d12f MediaWiki:Sidebar 8 3 230 4 2025-01-20T09:40:44Z Wikiricky 1 added contribution scores wikitext text/x-wiki * navigation ** Special:CreatePage|Create a Page ** Special:Contributionscores|contributionscores ** mainpage|mainpage-description ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * SEARCH * TOOLBOX * LANGUAGES ab40a2e64e9882c9b1485ed0874404db9e6b5bce Plantation Estates In Grenada 0 109 237 2025-02-11T22:45:00Z Kiki 34 Created page with " == Hermitage Plantation House == Hermitage Estate, located in St. Andrew's, Grenada, was historically owned by prominent figures, including Alexander Fraser, who managed the estate alongside his involvement with Baillie’s plantation. Fraser, a planter with significant experience, married Emilia Duff of Muirton, the niece of Evan Baillie. Their son, Evan Baillie Fraser (1800-91), was born in Grenada. By 1807, Fraser had relocated to the UK, and by 1812, following the..." wikitext text/x-wiki == Hermitage Plantation House == Hermitage Estate, located in St. Andrew's, Grenada, was historically owned by prominent figures, including Alexander Fraser, who managed the estate alongside his involvement with Baillie’s plantation. Fraser, a planter with significant experience, married Emilia Duff of Muirton, the niece of Evan Baillie. Their son, Evan Baillie Fraser (1800-91), was born in Grenada. By 1807, Fraser had relocated to the UK, and by 1812, following the death of Evan Baillie, he entered into a partnership with Baillie’s son, James Evan Baillie, to form the company '''JE Baillie, Fraser & Co.''' Based in London, the company dissolved in 1820. In 1836, a compensation claim for 149 slaves at the Hermitage Estate was filed for £4030 4s 3d, with Evan Baillie (deceased) serving as trustee. Previous part-owners included Colin Chisholm and James Baillie, father of the Baillie brothers. John Sleeper, in 1860, described Hermitage as one of the finest plantations in Grenada, situated on elevated ground with a residence once occupied by Mr. Houston, the estate's attorney. Under Houston’s management, many fruit trees planted by a previous owner, referred to as “Bailey,” were replaced with sugar cane crops.<ref>https://grenadanationalarchives.blogspot.com/2014/07/grenada-heritage-our-plantations-part-3.htm</ref> == Levera Estate Plantation, St. Patrick Grenada == Levera Estate was owned by a Mr. Snell in April 1785. By the late 1790s, '''Alexander Fraser''' (1759-1837) of Inchcoulter, Kiltearn, Scotland, became involved with the estate. Fraser, who also contributed to raising funds for the Northern Infirmary in Inverness, purchased his own estate in 1806 and founded the village of Evanton. He was a friend of William Smith of Revolution Hall, who bequeathed him £2000 in his will. Fraser is confirmed to have owned Levera Estate by 1825. Following the abolition of the slave trade in 1811 and the subsequent legal developments, Fraser submitted a claim to the '''Slave Compensation Commission''' on November 9, 1835, for 94 slaves at Levera Estate, seeking £2759 1s 0d in compensation. However, a successful counterclaim was made by Hugh Duncan Baillie, James Evan Baillie, and George Henry Ames, who acted as assignees for the compensation funds.<ref>https://grenadanationalarchives.blogspot.com/2014/07/grenada-heritage-our-plantations-part-3.htm</ref> == Revolution Hall Estate Plantation, St. Johns Grenada == The '''Revolution Hall Estate''' was overseen by Joseph Barlow during the 1795 ‘insurrection’ in Grenada. Described in 1845 as a fertile sugar estate located about two to three miles from the village of Goyave, the estate was involved in a compensation claim in 1836. Richard Oliver Smith, the owner-in-fee, claimed compensation for 168 slaves at the estate amounting to £4210 16s 8d. However, successful counterclaims by the Baillie brothers, acting as mortgagees, resulted in Smith receiving no compensation. Richard Oliver Smith (May 1788 - ????) was the illegitimate son of Grenada slave-owner '''William Smith''' and Sarah Jean. He lived in Britain from around 1793 to 1833. Richard's father’s will, dated 1793, left provisions for Sarah Jean and their children, including Richard, who was five years old at the time. Richard Smith married twice: first to Harriet Gee in 1806, with whom he had a daughter, Emily, and later to Mary Broderip in 1819, with whom he had a daughter, Elizabeth Georgiana. Records from the '''Revolution Hall Estate''', including accounts from 1821, provide detailed lists of slaves, livestock, and estate maintenance. These documents are held at the '''Burke Library, Hamilton College''', and include correspondence about the estate's unprofitability in the early 1830s. In 1833, Richard moved to Grenada, and his daughter Emily later married Rev. John Nurse in 1835.<ref>Grenada Heritage: Our Plantations – part 3 ~ Grenada National Archives</ref> ---- <references /> 75634df5a3520f446f2314ab55011c4f08279aa6 National Parks And Reserves Found In Grenada 0 110 238 2025-02-11T23:50:53Z Kiki 34 Created page with "== Grand Etang National Park and Forest Reserve == '''Physical Facts:''' * The Reserve spans elevations from 300 to 760 meters, containing four of Grenada’s highest mountains, all of volcanic origin. * Grand Etang Lake, a crater lake, lies at the heart of the Reserve, 530m above sea level. '''Cultural Facts:''' * Likely used by the Arawaks for hunting and ceremony, and later as a Carib camp. * In 1796, British forces captured a French stronghold near Mount Qua Qua...." wikitext text/x-wiki == Grand Etang National Park and Forest Reserve == '''Physical Facts:''' * The Reserve spans elevations from 300 to 760 meters, containing four of Grenada’s highest mountains, all of volcanic origin. * Grand Etang Lake, a crater lake, lies at the heart of the Reserve, 530m above sea level. '''Cultural Facts:''' * Likely used by the Arawaks for hunting and ceremony, and later as a Carib camp. * In 1796, British forces captured a French stronghold near Mount Qua Qua. '''Recreational Activities:''' * Visitors can enjoy facilities like a visitor center, trails, and picnic areas. Fees: XCD $5.34 or USD $2.00. * Trails range from easy to challenging, with options for hiking and exploring nature. '''Wildlife:''' * Home to species like the Mona Monkey, tropical birds, and the endangered Grenada Frog. * The forest also shelters armadillos, opossums, and various birds. Grand Etang offers a mix of scenic views, historical significance, and rich biodiversity.<ref>Grand Etang National Park & Forest Reserve - Grenada Tourism Authority</ref> == Levera National Park == Levera National Park, covering 450 acres in St. Patrick parish, is one of Grenada's most scenic and ecologically diverse coastal areas. The park features a popular beach, a mangrove-filled lagoon, and important wildlife habitats. The lagoon is a birdwatcher's paradise, home to species like the Scarlet Ibis, herons, and black-necked stilts. The marine area includes coral reefs and sea grass beds, supporting lobster and reef fish. From March to July, the beach hosts endangered leatherback turtles that come to lay their eggs. Visitors can enjoy a walking trail around a 23-acre pond, a boardwalk over the pond, and nature excursions, including turtle-watching tours.<ref>Levera National Park - Grenada Tourism Authority</ref> == Mt. Hartman National Park and Dove Sanctuary == Located near Woburn Bay in southern Grenada, the 154-acre Mt. Hartman Dove Sanctuary is dedicated to protecting the endangered Grenada Dove, endemic to the island. The sanctuary, declared a national park, features a visitor center operated by the Forestry Department, offering guided tours to spot the Grenada Dove. The area has a dry thorn scrub ecosystem, with cactus shrubs and coastal woodlands, and is also home to diverse mangrove habitats that support a variety of wildlife.<ref>Mt. Hartman Dove Sanctuary - Grenada Tourism Authority</ref> == Annandale Forest Reserve == The Annandale Forest Reserve, located near the headwaters of a major tributary of the Beausejour River, borders the Grand Etang Forest Reserve. It spans elevations from 250 meters to 700 meters along the ridge line. The reserve shares similar bedrock and soil resources with Grand Etang. While climatic data has not been collected, it is expected that the Annandale Reserve receives less rainfall, with higher average temperatures at its lower elevations.<ref>Review of Protected Areas Management Framework in Grenada</ref> == Perseverance Protected Area == == High North National Park (Carriacou) == 7174957331aa367d90c5b52ed125e17b0b609c4f 239 238 2025-02-11T23:53:34Z Kiki 34 wikitext text/x-wiki == Grand Etang National Park and Forest Reserve == '''Physical Facts:''' * The Reserve spans elevations from 300 to 760 meters, containing four of Grenada’s highest mountains, all of volcanic origin. * Grand Etang Lake, a crater lake, lies at the heart of the Reserve, 530m above sea level. '''Cultural Facts:''' * Likely used by the Arawaks for hunting and ceremony, and later as a Carib camp. * In 1796, British forces captured a French stronghold near Mount Qua Qua. '''Recreational Activities:''' * Visitors can enjoy facilities like a visitor center, trails, and picnic areas. Fees: XCD $5.34 or USD $2.00. * Trails range from easy to challenging, with options for hiking and exploring nature. '''Wildlife:''' * Home to species like the Mona Monkey, tropical birds, and the endangered Grenada Frog. * The forest also shelters armadillos, opossums, and various birds. Grand Etang offers a mix of scenic views, historical significance, and rich biodiversity.<ref>Grand Etang National Park & Forest Reserve - Grenada Tourism Authority</ref> == Levera National Park == Levera National Park, covering 450 acres in St. Patrick parish, is one of Grenada's most scenic and ecologically diverse coastal areas. The park features a popular beach, a mangrove-filled lagoon, and important wildlife habitats. The lagoon is a birdwatcher's paradise, home to species like the Scarlet Ibis, herons, and black-necked stilts. The marine area includes coral reefs and sea grass beds, supporting lobster and reef fish. From March to July, the beach hosts endangered leatherback turtles that come to lay their eggs. Visitors can enjoy a walking trail around a 23-acre pond, a boardwalk over the pond, and nature excursions, including turtle-watching tours.<ref>Levera National Park - Grenada Tourism Authority</ref> == Mt. Hartman National Park and Dove Sanctuary == Located near Woburn Bay in southern Grenada, the 154-acre Mt. Hartman Dove Sanctuary is dedicated to protecting the endangered Grenada Dove, endemic to the island. The sanctuary, declared a national park, features a visitor center operated by the Forestry Department, offering guided tours to spot the Grenada Dove. The area has a dry thorn scrub ecosystem, with cactus shrubs and coastal woodlands, and is also home to diverse mangrove habitats that support a variety of wildlife.<ref>Mt. Hartman Dove Sanctuary - Grenada Tourism Authority</ref> == Annandale Forest Reserve == The Annandale Forest Reserve, located near the headwaters of a major tributary of the Beausejour River, borders the Grand Etang Forest Reserve. It spans elevations from 250 meters to 700 meters along the ridge line. The reserve shares similar bedrock and soil resources with Grand Etang. While climatic data has not been collected, it is expected that the Annandale Reserve receives less rainfall, with higher average temperatures at its lower elevations.<ref>Review of Protected Areas Management Framework in Grenada</ref> == Perseverance Protected Area == == High North National Park (Carriacou) == It is a forest reserve with great views of both the Northern & Southern Grenadines. You'll see plenty of dry thorn scrub and several species of birds. If you're lucky, you might also see small tree boas and land turtles. b99ec31b70ab92ef1d9a4a37badade9b128526f5 240 239 2025-02-11T23:54:18Z Kiki 34 wikitext text/x-wiki == Grand Etang National Park and Forest Reserve == '''Physical Facts:''' * The Reserve spans elevations from 300 to 760 meters, containing four of Grenada’s highest mountains, all of volcanic origin. * Grand Etang Lake, a crater lake, lies at the heart of the Reserve, 530m above sea level. '''Cultural Facts:''' * Likely used by the Arawaks for hunting and ceremony, and later as a Carib camp. * In 1796, British forces captured a French stronghold near Mount Qua Qua. '''Recreational Activities:''' * Visitors can enjoy facilities like a visitor center, trails, and picnic areas. Fees: XCD $5.34 or USD $2.00. * Trails range from easy to challenging, with options for hiking and exploring nature. '''Wildlife:''' * Home to species like the Mona Monkey, tropical birds, and the endangered Grenada Frog. * The forest also shelters armadillos, opossums, and various birds. Grand Etang offers a mix of scenic views, historical significance, and rich biodiversity.<ref>Grand Etang National Park & Forest Reserve - Grenada Tourism Authority</ref> == Levera National Park == Levera National Park, covering 450 acres in St. Patrick parish, is one of Grenada's most scenic and ecologically diverse coastal areas. The park features a popular beach, a mangrove-filled lagoon, and important wildlife habitats. The lagoon is a birdwatcher's paradise, home to species like the Scarlet Ibis, herons, and black-necked stilts. The marine area includes coral reefs and sea grass beds, supporting lobster and reef fish. From March to July, the beach hosts endangered leatherback turtles that come to lay their eggs. Visitors can enjoy a walking trail around a 23-acre pond, a boardwalk over the pond, and nature excursions, including turtle-watching tours.<ref>Levera National Park - Grenada Tourism Authority</ref> == Mt. Hartman National Park and Dove Sanctuary == Located near Woburn Bay in southern Grenada, the 154-acre Mt. Hartman Dove Sanctuary is dedicated to protecting the endangered Grenada Dove, endemic to the island. The sanctuary, declared a national park, features a visitor center operated by the Forestry Department, offering guided tours to spot the Grenada Dove. The area has a dry thorn scrub ecosystem, with cactus shrubs and coastal woodlands, and is also home to diverse mangrove habitats that support a variety of wildlife.<ref>Mt. Hartman Dove Sanctuary - Grenada Tourism Authority</ref> == Annandale Forest Reserve == The Annandale Forest Reserve, located near the headwaters of a major tributary of the Beausejour River, borders the Grand Etang Forest Reserve. It spans elevations from 250 meters to 700 meters along the ridge line. The reserve shares similar bedrock and soil resources with Grand Etang. While climatic data has not been collected, it is expected that the Annandale Reserve receives less rainfall, with higher average temperatures at its lower elevations.<ref>Review of Protected Areas Management Framework in Grenada</ref> == Perseverance Protected Area == == High North National Park (Carriacou) == It is a forest reserve with great views of both the Northern & Southern Grenadines. You'll see plenty of dry thorn scrub and several species of birds. If you're lucky, you might also see small tree boas and land turtles.<ref>High North National Park – OurCarriacou.com</ref> fe53d64bc11b7fdeaf65b978e1fdb1ebd42b9593 Petroglyph Sites In Grenada 0 111 241 2025-02-12T02:18:24Z Kiki 34 Created page with "== Mt. Rich Petroglyphs == == Duquesne Petroglyphs ==" wikitext text/x-wiki == Mt. Rich Petroglyphs == == Duquesne Petroglyphs == f32cfa7a464c5c34483cf124c8da11de71aa474a Grenada's Volcanoes 0 112 242 2025-02-20T19:41:42Z 104.245.95.82 0 Created page with "== Kick 'Em Jenny == '''Kick-‘em-Jenny''' is an active submarine volcano 8 km north of Grenada, the most frequently erupting in the Eastern Caribbean. Its summit, about 197 m below sea level, is too deep to trigger a tsunami. Since its first recorded eruption in 1939, it has erupted at least 14 times, with the last in 2017. Geothermal vents reaching 150°C have been found, but energy extraction is unlikely. The volcano remains under a '''YELLOW''' alert, with a 1.5 km..." wikitext text/x-wiki == Kick 'Em Jenny == '''Kick-‘em-Jenny''' is an active submarine volcano 8 km north of Grenada, the most frequently erupting in the Eastern Caribbean. Its summit, about 197 m below sea level, is too deep to trigger a tsunami. Since its first recorded eruption in 1939, it has erupted at least 14 times, with the last in 2017. Geothermal vents reaching 150°C have been found, but energy extraction is unlikely. The volcano remains under a '''YELLOW''' alert, with a 1.5 km exclusion zone. Its name may come from rough waters or a French phrase meaning “turbulent cay.”<ref>Kick-‘Em-Jenny | The UWI Seismic Research Centre</ref> == Mount Saint Catherine == '''Mt. St. Catherine''' is a dormant volcano in St. Mark's, Grenada, with a 1.5 km horseshoe-shaped crater and volcanic lava domes. Monitored by the '''UWI Seismic Research Center''', it is the only "live" volcano in Grenada due to its well-preserved shape, hot springs, and fumaroles. Though its last eruption likely occurred during the '''last Ice Age''', past eruptions produced pyroclastic flows extending northwest.<ref>Mount St. Catherine - I Am Grenada</ref> == Grand Etang Lake == '''Grand Etang Crater Lake''' is a volcanic crater lake in '''Saint Andrew Parish''', formed by an extinct volcano that last erupted '''1–2 million years ago'''. Sitting '''530 m (1,740 ft) above sea level''', it spans '''36 acres''' and is '''about 20 feet deep'''. It is one of '''two crater lakes''' in Grenada, along with '''Lake Antoine'''. Local folklore claims its depth is '''unknown''' and that a '''mermaid''' lures men to their doom. The lake is home to '''freshwater lobster, barracuda, bonefish, crayfish''', and other aquatic creatures.<ref>Grand Etang Crater Lake - I Am Grenada</ref> == Lake Antoine == '''Lake Antoine''' is a '''16-acre''' crater lake formed by a long-extinct volcano, located '''6 miles north of Grenville'''. Surrounded by '''unspoiled nature''', it offers stunning views from a hillside vantage point. The '''shallow lake''' is a haven for wildlife, making it a prime spot for '''birdwatching''', attracting species like '''snail kites, fulvous whistling ducks, large-billed seed-finches, gray kingbirds, and limpkins'''.<ref>Lake Antoine - Grenada Tourism Authority</ref> 62856fcd6b0cac5abfbe5d45d0ca98d8aa05b545 Marine Protected Areas In Grenada 0 113 243 2025-02-20T21:20:54Z Kiki 34 Created page with "== Moliniere-Beausejour == The '''Moliniere/Beausejour Marine Protected Area (MBMPA)''' was established in '''2001''' to protect the reef and serve as a '''nursery for juvenile fish'''. Covering '''60 hectares (0.23 sq. miles) and 2.2 km long''', it also promotes '''tourism and education'''. MPAs help improve fishing in nearby waters by allowing fish populations to grow and disperse. Fishing is prohibited, and wardens '''enforce regulations and monitor the reef'''. Six..." wikitext text/x-wiki == Moliniere-Beausejour == The '''Moliniere/Beausejour Marine Protected Area (MBMPA)''' was established in '''2001''' to protect the reef and serve as a '''nursery for juvenile fish'''. Covering '''60 hectares (0.23 sq. miles) and 2.2 km long''', it also promotes '''tourism and education'''. MPAs help improve fishing in nearby waters by allowing fish populations to grow and disperse. Fishing is prohibited, and wardens '''enforce regulations and monitor the reef'''. Six nearby communities are involved in its management, with initiatives like '''coastal cleanups'''. '''Anchoring is banned''', with '''white mooring balls''' for non-commercial use and '''red for commercial'''. Fees include '''$10 USD per mooring, $1 for snorkeling, and $2 for SCUBA''', supporting marine conservation.<ref>Grenada Underwater Sculptures in Marine Protected Area - All At Sea</ref> == Grand Anse Marine Protected Area == The '''Grand Anse Marine Protected Area (GAMPA)''' was officially launched on '''January 26, 2017''', to protect '''Grand Anse Beach''', a hub for '''tourism, fishing, and recreation'''. Due to high traffic from '''hotels, restaurants, dive shops, visitors, and yachts''', the area faced risks of '''overuse and pollution''', making conservation crucial. GAMPA aligns with Grenada’s '''strategic plan''' to enhance '''marine biodiversity''' and meet commitments under '''Sustainable Development Goal 14''' and the '''Caribbean Challenge Initiative (CCI)'''. Grenada pledged to protect '''25% of its coastal waters''' by 2020 and now has '''four MPAs''', with '''Grand Anse being the largest'''. The MPA was established through a collaboration between '''Grenada’s Ministry of Agriculture, Lands, Forestry, and Fisheries''', '''The Nature Conservancy''', and the '''ECMMAN Project''', with funding from '''Germany’s BMUB'''.<ref>https://caribbeanbiodiversityfund.org/news/grenada-launches-its-newest-marine-protected-area-grand-anse/#:~:text=On%20January%2026%2C%202</ref> == Sandy Island Oyster Bed Marine Protected Area == The '''Sandy Island Oyster Bed Marine Protected Area (SIOBMPA)''', established on '''July 31, 2010''', is a vital conservation area in Grenada, home to '''coral reefs, mangroves, seagrass beds, sea turtles, and the rare Grenadian Bank Tree Boa'''. It spans from '''Tyrrel Bay mangroves to Lauriston''', including '''offshore islands like Sandy Island and Mabouya Island'''. SIOBMPA follows a '''co-management model''' with input from '''NGOs, government agencies, and local organizations''' to ensure sustainable use and conservation. Its goals include '''marine ecosystem protection, community engagement, eco-tourism, and sustainable fishing'''.<ref>Sandy Island/Oyster Bed Marine Protected Area (SIOBMPA): Carriacou’s Natural Treasure – OurCarriacou.com</ref> == Woburn Clarkes Court Bay Marine Protected Area == The '''Woburn Clarkes Court Bay Marine Protected Area (MPA)''', located in Grenada, contains the largest intact mangrove ecosystem on the island. This area plays a key role in protecting over three miles of coastline from erosion and serves as vital habitat for fish, birds, and wildlife such as iguanas and snakes. The '''MPA''' is managed by '''Grenada's fisheries and forestry departments''', with essential support from nonprofits like the '''Grenada Fund for Conservation''' and '''Woburn Woodlands Development Organization'''. These groups help with conservation activities, including cleanups, education, and mangrove replanting. f7943ebcb9505fc3fc2f76f2b948cb76b37d357e List of Colonial Administrators and Lieutenant Governors of Grenada 0 114 244 2025-03-09T20:54:04Z Kiki 34 Created page with " == Role of the Governor (1763–1882) == The Governor of Grenada was the highest ranking position in the colony, they were  appointed directly by the British crown. They were allowed complete executive, military and legislative authority. == Role of the Administrator (1882–1974) == The Administrator of Grenada replaced the lieutenant Governor in 1882 and acted as chief colonial officer under the Governor of the windward islands which was based in Grenada from 1885...." wikitext text/x-wiki == Role of the Governor (1763–1882) == The Governor of Grenada was the highest ranking position in the colony, they were  appointed directly by the British crown. They were allowed complete executive, military and legislative authority. == Role of the Administrator (1882–1974) == The Administrator of Grenada replaced the lieutenant Governor in 1882 and acted as chief colonial officer under the Governor of the windward islands which was based in Grenada from 1885.The Administrator had limited authority than that of a governor as major decisions were made by the British Colonial Office or the Governor of the windward islands. == Governors of Grenada (1763–1882) == British Governors (1763–1779): # George Scott (March 1762–1764): Oversaw the transition of Grenada from French to British control following its capture in 1762. # Robert Melville (December 1764, Acting; 1770–1771): Served initially as acting governor and later as the appointed governor. # Ulysses Fitz Maurice (July 1764–1770, Acting 1771): Held the position during two separate terms. # William Leybourne (March 1771–1775): Administered the colony during this period. # Sir William Young (1775): Had a brief tenure as governor. # George Macartney, Lord Macartney (1776–1779): Served until the French captured Grenada in 1779. French Governor (1779–1783): # Jean-François, Comte de Durat : On July 4<sup>th</sup>  Grenada capitulated to the French and was not restored to Great Britain until 1782. British Governors (1784–1802): # Edward Mathew (1784–1785): Reestablished British administration after the French period. # William Lucas (1785–1787, Acting): Served as acting governor. # Samuel Williams (1787–1788, Acting; 1789–1792, Acting): Held the position during two separate terms. # James Campbell (1788–1789, Acting): Served as acting governor between Williams' terms. # Ninian Home (1792–1795): Administered the colony until his death during Fédon's Rebellion. # Kenneth Francis Mackenzie (1795, Acting): Briefly served as acting governor following Home's death. # Samuel Mitchell (1795–1796, Acting): Assumed acting governorship during this tumultuous period. # Alexander Houston (1796–1797): Served as governor following Mitchell. # Charles Green (1797–1801): Oversaw the administration leading up to the 19th century. # Samuel Dent (1801–1802, Acting): Acted as governor before the position transitioned to a lieutenant governorship. (The Grenada Handbook and Directory 1946, 1946)<ref>The Grenada Handbook and Directory 1946</ref> == Lieutenant Governors (1802–1882): == <nowiki>*</nowiki>In 1802, the governance structure changed, and the position of governor was replaced by a lieutenant governor, subordinate to the Governor of Barbados. # George Vere Hobart (1802–5 November 1802): First to serve as lieutenant governor under the new administrative arrangement. # Thomas Hislop (1803–1804): Oversaw the colony during this period. # William Douglas MacLean Clephane (1803): Served briefly in 1803. # Frederick Maitland (29 March 1805–1811): Administered the colony for several years. # Abraham Charles Adye (1811–1812): Held the position during this time. # George Robert Ainslie (1812–1813): Served as lieutenant governor. # Charles Shipley (1813–1815, Acting): Acted as lieutenant governor during this period. # George Paterson (1815–1816, Acting; 1823–1826, Acting): Served as acting lieutenant governor during two separate terms. # Phineas Riall (1816–1823): Oversaw the administration for several years. # James Campbell (1826–1833): Served as lieutenant governor leading up to the incorporation of Grenada into the British Windward Islands. # In 1833, Grenada was incorporated into the British Windward Islands, and the governance structure evolved accordingly.<ref>the Grenada Handbook and Directory 1946</ref> == Administrators of Grenada (1882–1942) == <nowiki>*</nowiki>In 1882, the position of lieutenant governor was replaced by that of administrator, who was initially subordinate to the Governor of Barbados. In 1885, Barbados ceased its administrative control over the Windward Islands, and a new Governor of the Windward Islands was appointed, based in Grenada. The Administrator of Grenada then had responsibilities specific to the island. # Irwin Charles Maling (1882, First Term): Served as the first administrator under the new system. # Roger Tuckfield Goldsworthy (1882–1883): Oversaw the colony during this period. # Edward Laborde (1883–1886, First Term): Administered the island in the early 1880s. # Irwin Charles Maling (1886–1887, Second Term): Returned for a second term as administrator. # Henry Rawlins Pipon Schooles (1887–1888): Served during this period. John Elliott (June 1888–December 1888): Had a brief tenure as administrator. Robert Baxter Llewelyn (December 1888–January 1889, First Term): Served as administrator for a short period. (The Grenada Handbook and Directory 1946, 1946) 838eadf8f6db93bd8087f7e0f269eca6a2287cda